Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OCI IAM Identity Domains OpenID Connect認証連携設定(基...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
oracle4engineer
PRO
June 05, 2023
Technology
1
1.5k
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
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
1
13
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.3k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
O&M ログ管理サービス詳細版 (Logging, Log Analytics)
oracle4engineer
PRO
0
65
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
58
OCHaCafe S11 #1 CloudNativeなMCPサーバーのための基礎知識
oracle4engineer
PRO
2
100
Opsインサイト設定手順書(Autonomous AI Database編)
oracle4engineer
PRO
0
21
Opsインサイト設定手順書_コンピュート・インスタンス編
oracle4engineer
PRO
0
34
Other Decks in Technology
See All in Technology
プロポーザルに込める段取り八分
shoheimitani
1
170
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.2k
20260204_Midosuji_Tech
takuyay0ne
0
110
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
3
140
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
340
入社1ヶ月でデータパイプライン講座を作った話
waiwai2111
1
250
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.6k
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
0
100
データの整合性を保ちたいだけなんだ
shoheimitani
8
2.9k
Webhook best practices for rock solid and resilient deployments
glaforge
1
270
(金融庁共催)第4回金融データ活用チャレンジ勉強会資料
takumimukaiyama
0
130
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
200
Featured
See All Featured
A Tale of Four Properties
chriscoyier
162
24k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
160
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Believing is Seeing
oripsolob
1
53
Technical Leadership for Architectural Decision Making
baasie
1
240
Speed Design
sergeychernyshev
33
1.5k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
79
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Color Theory Basics | Prateek | Gurzu
gurzu
0
190
Designing for humans not robots
tammielis
254
26k
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