Okta JSON web token認証(カスタムJSON web token )
JSON web tokenカスタム 認証プロバイダー は、 Okta で管理するユーザーを認証するように構成できます。
始める前に
Okta を使用するには、次のものが必要です。
Okta プロジェクト。 詳細については、 Okta のドキュメント を参照してください。
App Services AppJSON web tokenカスタム 認証をまだ使用していない 。新しい App Services App を作成する方法については、「 アプリの作成 」を参照してください。
コマンドライン インターフェイスを使用している場合は、ローカル システムにApp Services CLIをインストールして認証する必要があります。
Admin API を使用している場合は、 MongoDB Atlas Admin API公開キーと秘密キーのペアが必要です。 API キーにはプロジェクト オーナーの権限が必要です。
Okta アプリと認証サーバーの作成
クライアント アプリケーションを表すアプリケーションを Okta で作成します。 作成するアプリケーションのタイプは、ユースケースによって異なります。 たとえば、ウェブ ブラウザ アプリを作成している場合は、Okta で単一ページ アプリケーション(SPA)またはウェブ アプリケーションを作成できます。
アプリケーションを構成したら、Okta で App Services App を表す認可サーバーを作成します。 任意の名前と説明を使用できます。 サーバーAudience App Services App{0ID を のクライアントアプリ に設定します。たとえば、 myapp-abcde
のようになります。
Oktaアプリケーションと承認サーバーの設定方法の詳細については、Oktaドキュメントの「 承認サーバーを作成する を参照してください。
カスタムJSON web token認証プロバイダを構成する
カスタムJSON web token認証は、UI を使用するか、 CLIまたは Admin APIを使用して基礎の構成ファイルを直接変更することで構成できます。 以下から希望する方法を選択します。
左側のナビゲーション メニューで、[ Authentication ] をクリックします。 次に、 Authentication Providersタブをクリックし、 Custom JWTプロバイダーを選択します。
これで、カスタムJSON web token認証プロバイダーを Okta プロジェクトで動作するように構成できます。
[] トグルをクリックしてプロバイダーを有効にします。
Verification MethodをUse a JWK URIに設定します。 JWK URIフィールドに Okta 認証サーバーの JWK URI を指定します。
Okta JWK URI は次のようになります。
https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys 注意
Okta UI から正確な JWK URI を取得するには、認可サーバーのMetadata URIリンクを実行します。
jwks_uri
フィールドにリストされている値を使用します。Okta JSON web tokenから対応する App Services ユーザー アカウントにデータをマッピングするには、 Metadata Fields を定義します。
Okta JSON web tokenからメタデータ フィールドをマッピングする必要はありません。 ただし、Okta からアプリにユーザー情報を取得するのに役立つ場合がある場合があります。 メタデータ フィールドとその構成方法について詳しくは、「カスタムJSON web tokenメタデータ フィールド」を参照してください。
Audienceの値は空白のままにします。
Saveをクリックして変更を配置します
次のコマンドを実行して、 --remote
の値を アプリのクライアントアプリ ID に置き換えます。 これにより、アプリの最新構成ファイルのローカルコピーがダウンロードされ、アプリと同じ名前を使用する構成ファイル ディレクトリに移動されます。
appservices pull --remote "myapp-abcde" cd myapp
新しいカスタムJSON web token認証プロバイダをアプリの /auth/providers.json
ファイルに追加します。 次の構成をテンプレートとして使用します。 以下を確認してください。
jwkURI
値を Okta 認証サーバーの JWK URI に置き換えます。Okta JSON web token のデータをマッピングするために、カスタムJSON web tokenメタデータ フィールドを定義しJSON web token 。 これは任意ですが、 フィールドのマッピングが Okta からアプリにユーザー情報を取得するのに役立つ場合があるかもしれません。
{ "custom-token": { "name": "custom-token", "type": "custom-token", "disabled": false, "config": { "audience": [], "jwkURI": "https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys", "useJWKURI": true }, "secret_config": { "signingKeys": [] }, "metadata_fields": [] } }
変更を/auth/providers.json
に保存します。 次に、更新された構成ファイルをプッシュしてアプリを配置します。
appservices push
認証プロバイダの 作成 エンドポイントを使用して、新しいカスタムJSON web token 認証プロバイダをアプリに追加します。
次の構成をテンプレートとして使用します。 以下を確認してください。
アプリの
$PROJECT_ID
と$APP_ID
を指定するAuthorization
ヘッダーに管理 API アクセス トークンを含めます。リクエスト本文内の
jwkURI
値を Okta 認証サーバーの JWK URI に置き換えます。Okta JSON web token のデータをマッピングするために、カスタムJSON web tokenメタデータ フィールドを定義しJSON web token 。 これは任意ですが、 フィールドのマッピングが Okta からアプリにユーザー情報を取得するのに役立つ場合があるかもしれません。
curl "https://services.cloud.mongodb.com/api/admin/v3.0/groups/$PROJECT_ID/apps/$APP_ID/auth_providers" \ -X "POST" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "custom-token", "type": "custom-token", "disabled": false, "config": { "audience": [], "jwkURI": "https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys", "useJWKURI": true }, "secret_config": { "signingKeys": [] }, "metadata_fields": [] }'
Okta JSON web tokenでログイン
JSON web tokenカスタム 認証プロバイダー を OktaApp Services App を使用するように設定したら、OktaJSON web token アクセス トークンを使用して にログインできます。
ユーザーを Okta にログインさせます。 方法については、関連する Okta SDK ドキュメント を参照してください プラットフォームとプログラミング言語向け。
ログイン応答からユーザーの Okta アクセス トークンを取得します。
Okta アクセス トークン を使用して Atlas App Services で認証します。 HTTP 経由でセッションを開始することも、SDK を使用してログインすることもできます。 その方法については、「 SDK のDocs 」を参照してください。