2

RAML と API Manager を使用して Mule プロジェクトを操作していました。ここに記載されている手順に従って

API Manager を使用して、次のような特性に関連付けられたサービスを処理する AM

  • シンプルなセキュリティ マネージャー、
  • OAuth 2.0 プロバイダーと
  • OAuth 2.0 アクセス トークンの適用。

次のリダイレクトを行う別のフローがあります

  1. 「ステータス」を 302 に設定します

  2. 「場所」を以下の URL に設定します

    http://localhost:8081/org/oauth/token?grant_type=authorization_code&&client_id=53a406c3e4b0624da8246eed&client_secret=myclientsecret&code=#[message.inboundProperties.code]&redirect_uri=http://localhost:8081/raml-api-with-oauth/redirect

ここまでは順調です。

しかし、アクセス トークンの URL にアクセスしようとすると、メッセージが表示されます。

{"error":"unauthorized_client","error_description":""}

私の質問を要約するには:

  1. 「OAuthダンス」手順を手伝ってください
  2. API との有効なコントラクトを設定して、OAuth ダンスに必要な clientId と clientSecret の通信を容易にする方法を教えてください。

どこが間違っているのか教えてください。

RAML コード:

#%RAML 0.8
title: raml-api-with-oauth
version: v1
baseUri: http://localhost:8081/raml-api-with-oauth
securedBy: [oauth_2_0]
securitySchemes:
    - oauth_2_0:
        description: |
            This supports OAuth 2.0 for authenticating all API requests.
        type: OAuth 2.0
        describedBy:
            headers:
                Authorization:
                    description: |
                       Used to send a valid OAuth 2 access token. Do not use
                       with the "access_token" query string parameter.
                    type: string
            queryParameters:
                access_token:
                    description: |
                       Used to send a valid OAuth 2 access token. Do not use together with
                       the "Authorization" header
                    type: string
            responses:
                401:
                    description: |
                        Bad or expired token. This can happen if the user or Dropbox
                        revoked or expired an access token. To fix, you should re-
                        authenticate the user.
                403:
                    description: |
                        Bad OAuth request (wrong consumer key, bad nonce, expired
                        timestamp...). Unfortunately, re-authenticating the user won't help here.
                404:
                  description: Unauthorized
        settings:
          authorizationUri: org/oauth/authorize
          accessTokenUri: org/oauth/token
          authorizationGrants: [code,token]
          scopes:
            - "READ_RESOURCE"
            - "POST_RESOURCE"
            - basic
            - comments
            - relationships
            - likes
mediaType: application/json
/employee:
  get:
    description:
      This is a Get Call which throws some response in json.
    responses:
      200:
        body:
          application/json:
            example: |
              {
                "empcode" : 1,
                "ename": "Rafiq", 
                "company" : "org"
              }
4

2 に答える 2

0

Oauth ポリシーは Mule Enterprise のセキュリティに基づいています。さまざまなタイプの許可のダンスを理解するには、次のドキュメント ページを参照してください。

http://www.mulesoft.org/documentation/display/current/Creating+an+OAuth+2.0a+Web+Service+Provider

于 2015-05-19T21:33:01.140 に答える