$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OCI IAM Identity Domains OpenID Connect認証連携設定(基...
Search
oracle4engineer
PRO
June 05, 2023
Technology
1
1.4k
OCI IAM Identity Domains OpenID Connect認証連携設定(基本編)/Identity Domain OpenID Connect(Basic)
OCI IAM Identity DomainとOpenID Connect対応アプリケーションにてOpenID Connectによる認証連携を行うための設定手順(Basic編)になります。
oracle4engineer
PRO
June 05, 2023
Tweet
Share
More Decks by oracle4engineer
See All by oracle4engineer
OCI Oracle Database Services新機能アップデート(2025/09-2025/11)
oracle4engineer
PRO
1
130
Oracle Cloud Infrastructure IaaS 新機能アップデート 2025/09 - 2025/11
oracle4engineer
PRO
0
84
OCHaCafe S10 #6 クラウドストレージ活用術
oracle4engineer
PRO
1
60
Oracle Technology Night #95 GoldenGate 26ai の実装に迫る1
oracle4engineer
PRO
0
180
[バックアップのコスト比較]リカバリ・サービス (RCV/ZRCV) とオブジェクト・ストレージ
oracle4engineer
PRO
5
8.1k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
700
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
120
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
0
200
Oracle Cloud Infrastructure:2025年11月度サービス・アップデート
oracle4engineer
PRO
2
220
Other Decks in Technology
See All in Technology
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
180
直接メモリアクセス
koba789
0
300
生成AIでテスト設計はどこまでできる? 「テスト粒度」を操るテーラリング術
shota_kusaba
0
710
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
1
710
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
130
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
300
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
13
5.3k
打 造 A I 驅 動 的 G i t H u b ⾃ 動 化 ⼯ 作 流 程
appleboy
0
290
因果AIへの招待
sshimizu2006
0
960
エンジニアリングをやめたくないので問い続ける
estie
2
1.2k
Databricks向けJupyter Kernelでデータサイエンティストの開発環境をAI-Readyにする / Data+AI World Tour Tokyo After Party
genda
1
100
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
6
1.5k
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Visualization
eitanlees
150
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
For a Future-Friendly Web
brad_frost
180
10k
YesSQL, Process and Tooling at Scale
rocio
174
15k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Making Projects Easy
brettharned
120
6.5k
Automating Front-end Workflow
addyosmani
1371
200k
Transcript
OCI IAM Identity Domains OpenID Connectによる連携設定手順(Basic編) 2025年6月30日 日本オラクル株式会社
Safe harbor statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、 情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以 下の事項は、マテリアルやコード、機能を提供することを確約するものではないため、購買 決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリース、時期及び価格については、弊 社の裁量により決定され、変更される可能性があります。 Copyright
© 2023, Oracle and/or its affiliates 2
はじめに 本手順書により実現する構成イメージ Copyright © 2023, Oracle and/or its affiliates 3
本手順書は下記構成を実現するためのOCI IAM Identity DomainでのOpenID Connectによる連携設定手順書になります。 ※対象のアプリケーション(OpenID Connect対応)は構築済みとの前提となります。 ※対象アプリケーションとIdentity Domainにはユーザーが登録されている前提となります。 OCI IAM Identity Domain OP OpenID Connectによる連携 RP OpenID Connect対応 アプリケーション 利用者 アプリケーションへアクセスすると Identity Domainへリダイレクト 認証 OP:OpenID Provider OP:Relying Party
アジェンダ Copyright © 2023, Oracle and/or its affiliates 4 1.
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ 2. OpenID Connectのフロー(概要)と利用するREST API概要
1. OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023,
Oracle and/or its affiliates 5
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 6 1)OCIコンソール(https://www.oracle.com/jp/cloud/sign-in.html)にアクセスします。 テナント名(クラウド・アカウント名)を入力し「Next」を選択します。 アイデンティティ・ドメインの選択画面が表示される場合には、対象ドメイン(今回は「PoC_IdentityDomain01」)を選択し、 管理者のユーザー名/パスワードを入力しOCIコンソールにログインします。 ※ドメイン選択画面が表示されない環境はDefaultドメインのみ存在する環境になり、自動的に“Defaultドメイン”にログインすることになります。 ※環境によりドメイン選択画面は表示されません。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 7 2) OCIコンソールにログインした後、画面右上のアバターマークより 「アイデンティティ・ドメイン:{アイデンティティ・ドメイン名} 」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 8 3)アイデンティティ・ドメイン画面にて、メニューより「詳細」を選択します。 詳細部分のドメインURLの「コピー」を選択し控えておきます。 ※このURLは後続の手順で利用します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 9 4) メニュー「統合アプリケーション」を選択します。 統合アプリケーション部分にて「アプリケーションの追加」を選択します。 表示されたアプリケーションの追加画面にて「機密アプリケーション」を選択し、「ワークフローの起動」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 10 5)名前、説明に適当な値を指定し、「送信」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 11 6)作成した機密アプリケーション画面にて「OAuth構成」を選択し、「OAuth構成の編集」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 12 7)OAuth構成の編集画面にて、クライアント構成部分の「このアプリケーションをクライアントとして今すぐ構成します」をチェックONにします。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 13 8)認可部分の権限付与タイプにて「認可コード」をチェックONにします。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 14 9)同じ画面にて「リダイレクトURL」に認証後にリダイレクトするアプリケーションのURL(アプリケーション側のコールバックURL)を指定します。 ※必要に応じてログアウトURLやログアウト後のリダイレクトURLも指定します。 画面右後部の「送信」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 15 9) 作成した機密アプリケーションの画面に遷移したことを確認し、右上のアクションより「アクティブ化」を選択します。 確認画面でも「アクティブ化」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 16 10)登録した機密アプリケーションがアクティブ化されたことを確認します。 一般情報部分にある「クライアントID」の値をコピーして控えておきます。 また、クライアント・シークレット部分にあるシークレットの表示より「コピー」選択し、クライアント・シークレットも控えておきます。 ※この「クライアントID」と「クライアント・シークレット」は後続のREST APIを利用時に使用します。
2. OpenID Connectのフロー(概要)と利用するREST API概要 Copyright © 2023, Oracle and/or its
affiliates 17
Copyright © 2023, Oracle and/or its affiliates OpenID Connectアプリケーションアクセス時のフロー(概要) 18
ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) アプリケーションアクセス 認可コード要求 Identity Domainへリダイレクト https://{IdentityDomain URL}/authorize?・・・・ 認証要求 Identity Domainログイン画面 ID/パスワード指定 サインイン押下 認証 認可コード発行 アプリケーションへリダイレクト https://{アプリURL}?code=・・・・ 認可コード取得 IDトークン要求 POST /oauth2/v1/token IDトークン/アクセス・トークン発行 IDトークン検証 ユーザー情報要求 GET /oauth2/v1/userinfo ユーザー情報提供 ログイン処理 アプリケーション画面(ログイン後画面) 必要に応じて 概要2. 概要3. 概要4. 概要5. OpenID Connect構成情報取得 GET /.well-known/openid-configuration 概要1. OpenID Connect構成情報送付 必要に応じて
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要1. 19 【メソッド】 GET 【エンドポイント】 https://{上記1で控えたIdentity DomainのURL}/.well-known/openid-configuration ・Identity DomainのOpenID Connectの各種エンドポイント等の構成情報を取得する場合には下記REAT APIを利用します。 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) OpenID Connect構成情報取得 GET /.well-known/openid-configuration 概要1. OpenID Connect構成情報送付 必要に応じて ⇒レスポンス { "issuer": "https://identity.oraclecloud.com/", "authorization_endpoint": "https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/authorize", "token_endpoint": "https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/token", "userinfo_endpoint": "https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/userinfo", ・・・・・・・・・・・・・・ (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/op-well-known-openid-configuration-get.html
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要2. 20 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) アプリケーションアクセス 認可コード要求 Identity Domainへリダイレクト https://{IdentityDomain URL}/authorize?・・・・ 概要2. https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/authorize? client_id={上記1で作成した機密アプリケーションのクライアントID} &redirect_uri={上記1で作成した機密アプリケーションに指定したリダイレクトURL} &response_type=code &scope=openid ・アプリケーションからの認可コード要求は下記URLをコールします。 (例) https://idcs-d4XXXX0e5.identity.oraclecloud.com/oauth2/v1/authorize?client_id=f65XXXXX872&redirect_uri=http%3A%2F%2Flocalhost%3A3001&response_type=code&scope=openid (注意事項) スコープには必ず”openid"を含めるようにします。 Email情報や電話番号情報も取得したい場合には「scope=openid+email+phone」と指定します。 (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/openidconnectauthcode.html
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要3. 21 https://{上記1で作成した機密アプリケーションに指定したリダイレクトURL}?code={発行された認可コード} ・Identity Domainでの認証が完了すると、下記のように認可コードが付与された状態で機密アプリケーションに指定した リダイレクトURLに遷移します。 リダイレクト先アプリケーションにて、後続のIDトークン/アクセストークン要求のためこの認可コード(code値)を取得します。 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/openidconnectauthcode.html 認可コード発行 アプリケーションへリダイレクト https://{アプリURL}?code=・・・・ 認可コード取得 概要3. (例) https://XXXXXXX:3001?code=AgAgMjNiMDQ・・・・・・・・・・・・・・・T6h2NV1_C5s=
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要4. 22 【メソッド】 POST 【エンドポイント】 https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/token 【Header】 Content-Type: application/x-www-form-urlencoded Authorization: Basic {上記1にて作成した機密アプリのクライアントID:クライアントシークレットのBase64エンコード値(※1)} 【Body】 grant_type=authorization_code&code={上記の詳細3で取得した認可コード(code値)} ・アプリケーションより、概要3で取得した認可コードをもとにIDトークン/アクセストークンを要求するため下記のREST APIをコールし、 レスポンスよりIDトークン(id_token)やアクセス・トークン(access_token)を取得します。 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) IDトークン要求 POST /oauth2/v1/token IDトークン/アクセス・トークン発行 IDトークン検証 概要4. ※1 機密アプリのクライアントID:クライアントシークレットのBase64エンコードの方法については後続ページ参照 ⇒レスポンス { "access_token": "eyJr............Ao8A", "token_type": "Bearer", "id_token": "eyJr............vMZQ", "expires_in": 3600 } (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/openidconnectauthcode.html
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要4. (補足) 23 IDトークン/アクセストークン取得時に指定する{機密アプリのクライアントID:クライアントシークレットのBase64エンコード値}の生成方法 2) ローカルPC上でコマンドプロンプトを開き、下記コマンドを実行しクライアントID:クライアント・シークレットのBase64でのエンコードを行います。 certutil -encode {上記にて作成したテキストファイル名} {Base64エンコード後のファイル名} 3) Base64エンコードしたファイルを開き値を取得します。 途中に改行がある場合には改行を削除します。 1) テキストエディタにて、上記1にて控えた機密アプリケーションの「クライアントID」と「クライアント・シークレット」をコロンで繋いだ形式で保存します。 ※最後に改行をしないようにします。
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要5. 24 【メソッド】 GET 【エンドポイント】 https://{上記1で控えたIdentity DomainのURL} /oauth2/v1/userinfo 【Header】 Content-Type: application/x-www-form-urlencoded Authorization: Bearer {上記4にて取得したアクセス・トークン(access_token)} ・アプリケーションより、ログインユーザーの情報を取得するため、概要4で取得したアクセス・トークンを用いて下記のREST APIをコールします。 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) ⇒レスポンス { "birthdate": "", "family_name": "test", "gender": "", "given_name": "user001", "name": "user001 test", "preferred_username": "test001", "sub": "test001", "updated_at": 1670827316, "website": "" } (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/openidconnectauthcode.html ユーザー情報要求 GET /oauth2/v1/userinfo ユーザー情報提供 必要に応じて 概要5.
None