0

我正在尝试访问由 APP ID 服务实例保护的 REST API。我尝试了两种访问其余资源的方法,但总是将<title>Redirect To OP</title>重定向 HTML 作为响应而不是实际资源。

1.方法1
使用云目录用户&和grant_type=password作为令牌端点

1.1 我在云目录中添加了用户名和密码。

1.2 HTTP POST 到<oauthServer>/token端点,使用 clientID 和 Secret 作为基本身份验证和grant_type=password, username=<cloud_direcotry_user>,password=<password>

1.3 我得到 access_token 和 Identity Token

1.4 使用授权标头调用受保护资源,该标头具有访问令牌和身份令牌作为标头值'authorization' Bearer <accesstoken> <identity token>

1.5 响应包含重定向 HTML,而不是实际资源 JSON/XML。

方法二

<oauthserverUrl>/token 2.1 使用端点获取访问令牌并grant_type=client_credentials 添加基本身份验证,客户端 ID 和秘密作为用户名和密码

2.2 我得到了 Bearer 类型的访问令牌

2.3 使用授权头调用受保护的资源

authorization: Bearer <access_toke>

2.4 我得到相同的重定向响应<title>Redirect To OP</title>而不是实际的资源 JSON/XML

___新更新___

这里是资源提供者的iberty的openid连接客户端配置。

<openidConnectClient id="<identifier>"
                     clientId= "${APPID_CLIENT_ID}"
                     clientSecret= "${APPID_CLIENT_SECRET}"                         authorizationEndpointUrl="${APPID_AUTH_SERVER}/authorization"
                     tokenEndpointUrl="${APPID_AUTH_SERVER}/token"
                     jwkEndpointUrl="${APPID_AUTH_SERVER}/publickeys"
                     issuerIdentifier="${APPID_AUTH_SERVER_ISSUER}"
                     tokenEndpointAuthMethod="basic"
                     signatureAlgorithm="RS256"
                     authFilterid="myAuthFilter"
                     trustAliasName="ng.bluemix.net"
                     trustStoreRef="appidtruststore"
                     redirectToRPHostAndPort="https://${env.APPID_SAMPLE_HOST}:${env.APPID_SAMPLE_SSL_PORT}"
         userIdentityToCreateSubject="email"
         inboundPropagation="supported"
         validationEndpointUrl="${APPID_AUTH_SERVER}/introspect"
         validationMethod="introspect"

/>

4

2 回答 2

0
于 2018-10-08T07:16:28.300 回答
0
  1. 在您的方法1中,不支持“授权承载访问令牌身份令牌”的标头,它应该是“授权承载访问令牌”。
  2. accessToken 是不透明的令牌还是 JWT?您可以发布示例 JWT 或不透明自省的结果吗?
于 2018-10-09T16:43:59.417 回答