このドキュメントでは、Google Cloud で OAuth 2.0 アクセス トークンの取得と取り消しを エンドユーザー ID、アプリ ID、またはその両方を使用できます。
アプリ ID は OAuth アクセス トークンに自動的に追加されます。したがって、 組織のトークン アクセスを有効にするには、以下の手順で、アプリ ID でトークンにアクセスできます。
エンドユーザー ID で OAuth 2.0 アクセス トークンを取得して取り消すには、エンドユーザー ID が存在する必要があります あります。以下の手順では、エンドユーザー ID を既存のトークンに追加するか、 関連付けられます。
デフォルトでは、Edge が OAuth 2.0 アクセス トークンを生成する際のトークンの形式は次のとおりです。
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", "refresh_count" : "0" }
次の点にご留意ください。
application_name
フィールド トークンに関連付けられているアプリの UUID が含まれます。取得と取り消しを有効にする場合 使用するアプリ ID です。access_token
フィールド OAuth 2.0 アクセス トークンの値が含まれています。
エンドユーザー ID による OAuth 2.0 アクセス トークンの取得と取り消しを有効にするには、 トークンにユーザー ID を含めるための OAuth 2.0 ポリシー(下記の手順を参照)。
エンドユーザー ID は、デベロッパーのメールアドレスではなく、Edge がデベロッパー ID として使用する文字列です。 あります。デベロッパーのメールアドレスからデベロッパーの ID を特定するには、Get Developer API 呼び出し。
トークンにエンドユーザー ID が含まれるように Edge を構成すると、 app_enduser フィールドを次のように指定します。
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", "refresh_count" : "0" }
取得と取り消しを行う API ユーザー ID とアプリ ID による OAuth 2.0 アクセス トークン
次の API を使用して、ユーザー ID、アプリ ID、またはその両方で OAuth トークンにアクセスします。
トークン アクセスを有効にする手順
OAuth 2.0 アクセス トークンの取得と取り消しを有効にするには、次の手順を使用します。 エンドユーザー ID とアプリ ID です
ステップ 1: 組織のトークン アクセス サポートを有効にする
トークン アクセスは、組織ごとに個別に有効にする必要があります。各変数に対して以下の PUT API を呼び出します。 OAuth 2.0 アクセス トークンの取得と取り消しを有効にする組織。 アプリ ID で識別されます。
次の呼び出しを行うユーザーは、ロール orgadmin または
組織に対する opsadmin
。values は、組織固有の値に置き換えます。
values:
curl -H "Content-type:text/xml" -X POST \ https://management_server_IP;:8080/v1/organizations/org_name \ -d '<Organization name="org_name"> <Properties> <Property name="features.isOAuthRevokeEnabled">true</Property> <Property name="features.isOAuth2TokenSearchEnabled">true</Property> </Properties> </Organization>' \ -u USER_EMAIL:PASSWORD
ステップ 2: 組織の opsadmin ロールの権限を設定する
組織内の orgadmin
ロールと opsadmin
ロールのみ
OAuth 2.0 トークンの取得(HTTP GET)と取り消し(HTTP PUT)の権限を
ユーザー ID またはアプリ ID で
指定できますアクセスを制御するには、/oauth2 リソースに get 権限と put 権限を設定します。
組織です。このリソースの URL は次の形式になります。
https://management_server_IP:8080/v1/organizations/org_name/oauth2
orgadmin
ロールには必要な権限がすでに付与されています。対象:
/oauth2 リソースに対する opsadmin
ロール。権限は次のようになります。
これを次のように使用します。
<ResourcePermission path="/oauth2"> <Permissions> <Permission>get</Permission> <Permission>put</Permission> </Permissions> </ResourcePermission>
Get
特定のリソースに対する権限があるロールを確認するには、Single Resource API を呼び出します。
/oauth2
リソース。
回答に基づき、 ロールに対するリソースに対する権限と リソースの削除 API 呼び出しの権限を削除して、/oauth2 に必要な調整を加える リソース権限を管理します。
次の curl
コマンドを使用して、opsadmin
ロールを付与します。
/oauth2
リソースに対する get
権限と put
権限。置換
values は組織固有の値に置き換えます。
curl -X POST -H 'Content-type:application/xml' \ http://management_server_IP:8080/v1/organizations/org_name/userroles/opsadmin/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions> <Permission>get</Permission> <Permission>put</Permission> </Permissions> </ResourcePermission>' \ -u USEREMAIL:PASSWORD
get
と put
を取り消すには、次の curl
コマンドを使用します。
リソースに対する /oauth2
リソースに対する権限
orgadmin
と opsadmin
。values を、
組織固有の値:
curl -X DELETE -H 'Content-type:application/xml' \ http://management_server_IP:8080/v1/organizations/org_name/userroles/roles/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions></Permissions> </ResourcePermission>' \ -u USEREMAIL:PASSWORD
ステップ 3: 設定 oauth_max_search_limit プロパティ
conf_keymanagement_oauth_max_search_limit
が
/opt/apigee/customer/application/management-server.properties
のプロパティ
ファイルは 100 に設定されています。
conf_keymanagement_oauth_max_search_limit = 100
このファイルが存在しない場合は作成します。
このプロパティは、トークンを取得するときに使用されるページサイズを設定します。Apigee では 100 をおすすめします。 自由に設定できます
新規インストールでは、このプロパティはすでに 100 に設定されています。変更を Management Server と Message Processor を再起動するために、 コマンド:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
ステップ 4: エンドユーザー ID を含むトークンを生成する OAuth 2.0 ポリシーを構成する
エンドユーザー ID が含まれるように、アクセス トークンの生成に使用する OAuth 2.0 ポリシーを構成します。 できます。アクセス トークンにエンドユーザー ID を含めることで、トークンの取得や取り消しを あります。
アクセス トークンにエンドユーザー ID が含まれるようにポリシーを構成するには、 アクセス トークンにエンドユーザー ID を含める必要があり、 にはエンドユーザー ID が含まれています。
以下の GenerateAccessTokenClient という名前の OAuth 2.0 ポリシーは、OAuth 2.0 アクセスを生成します。
あります。太字の <AppEndUser>
タグが追加されていることに注意してください。
エンドユーザー ID を含む変数:
<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient"> <DisplayName>OAuth 2.0.0 1</DisplayName> <ExternalAuthorization>false</ExternalAuthorization> <Operation>GenerateAccessToken</Operation> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> <GrantType>request.queryparam.grant_type</GrantType> <AppEndUser>request.header.appuserID</AppEndUser> <ExpiresIn>960000</ExpiresIn> </OAuthV2>
その後、次の curl
コマンドを使用して、OAuth 2.0 アクセスを生成できます。
ユーザー ID を appuserID
ヘッダーとして渡します。
curl -H "appuserID:6ZG094fgnjNf02EK" \ https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials \ -X POST -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNXFmP&client_secret=gk5K5lIp943AY4'
この例では、appuserID
がリクエスト ヘッダーとして渡されています。合格
リクエストの一部として使用できます。たとえば、以下のような方法もあります。
- フォーム パラメータ変数
request.formparam.appuserID
を使用する - エンドユーザー ID を提供するフロー変数を使用する