OAuth 2.0を使ったAPIエンドポイントでのフローの呼び出し
早期アクセスリリース。「セルフサービス機能を有効にする」を参照してください。
スコープ設定されたアクセストークンの承認にOAuth 2.0を使用することによって、APIエンドポイントフローを保護します。
この方式では、カスタム認証サーバーはサポートされません。
フローを呼び出すと、フロー出力がレスポンスオブジェクトとして送信されます。
セキュアなOAuth 2.0クライアント資格情報交換を使用してフローのAPIエンドポイントを呼び出すには、次の手順を使用します。このプロセスには、秘密鍵JSON Web Token(JWT)を使用する必要があります。
APIサービス統合アプリを作成する
APIサービス統合アプリを作成することは、保護されたフローを呼び出すための最適な方法です。このアプリの唯一の目的は、フローを呼び出して出力を呼び出し元のリクエストに返すことです。
-
Admin Consoleで、 に移動します。
-
[Create App Integration(アプリ統合を作成)] をクリックします。
-
[API Services(APIサービス)]を選択して[Next(次へ)]をクリックします。
-
[App integration name(アプリ統合の名前)]を入力し、[Save(保存)]をクリックしてアプリ統合を作成します。
独自のAPIサービスを構築する場合は、Okta開発者用ドキュメントの「APIサービス統合を構築する」を参照してください。
-
アプリケーションのリストで、新しいAPIサービスアプリを開きます。
-
[一般]タブの[クライアント資格情報]ペインで、[Public key / Private key(公開鍵/秘密鍵)]オプションを選択します。
-
[Add key(鍵を追加)]をクリックし、ダイアログで[Generate new key(新しい鍵を生成)]をクリックします。この秘密鍵の値をローカルシステムにコピーします。
クライアントが認証サーバーを呼び出したときに、この秘密鍵を使用してクライアントからのペイロードに署名します。
Okta認証サーバーは、対応する公開鍵を使用して資格情報を検証し、アクセストークンを生成します。サービスアプリケーションの作成の詳細については、「サービスアプリを使用してOkta向けOAuthを実装する」と「クライアント認証用のJWTを構築する」を参照してください。
-
[Okta API Scopes(Okta APIスコープ)]タブで、okta.workflows.invoke.manageスコープの[Grant(付与)]をクリックします。
-
権限ダイアログで、[Grant Access(アクセスを付与)]をクリックしてアクションを確定します。
独自のカスタムAPIサービスを構築する場合は、このスコープを追加します。呼び出しが適切に機能するにはこのスコープが必要であるからです。APIを呼び出す必要があるすべてのアプリ統合に適切なスコープを追加します。
フローを作成する
既存のAPIエンドポイントフローについては、これら2つのフロー作成ステップをスキップできます。代わりに、[APIエンドポイント]イベントカードの下部に表示されている[Endpoint settings(エンドポイント設定)]アイコン をクリックします。
-
Workflowsコンソールでフローを作成し、[Add event(イベントを追加)]をクリックします。
-
[フローを開始するためのアプリを選択]ダイアログで、[API Endpoint(APIエンドポイント)]を選択します。
APIエンドポイント設定を構成する
-
[APIエンドポイント設定]ダイアログで、セキュリティレベルとして[Secure with OAuth 2.0(OAuth 2.0で保護)]を選択します。
-
[Invoke URL(呼び出しURL)]がリクエストを受信したときにフローをトリガーできるアプリ統合を選択します。
-
[Any(すべて)]:適切なスコープが設定されているすべてのアプリ統合がフローをトリガーできます。
-
[Select from list(リストから選択)]:ドロップダウンメニューを使用して、フローをトリガーできる特定のアプリ統合を選択します。各統合には適切なスコープが必要です。
リストをフィルターするには、フィールド内で統合の名前の入力を開始します。リストから統合を削除するには、アプリ名の横にある「X」をクリックします。
-
-
[Close(閉じる)]jをクリックして、変更したエンドポイント設定を確定します。
APIエンドポイントフローをテストする
OAuthで保護されているエンドポイントをテストするには、PostmanクライアントなどのOAuthクライアントを使用する必要があります。
Postmanでは、https://${yourOktaDomain}/oauth2/v1/tokenにあるOkta orgのOAuthトークンエンドポイントに対してGETリクエストまたはPOSTリクエストを実行できます。
リクエストが認証されると、認証サーバーは、[Invoke URL(呼び出しURL)]にあるエンドポイントにクエリを実行してフローを呼び出すために使用できるアクセストークンを返します。
OAuth 2.0フローのテストに関する詳しい説明については、「OAuth 2.0で保護されているAPIエンドポイントの呼び出しとテスト」を参照してください。
関連項目
関数:APIエンドポイント