本文書では内部ユーザーと外部ユーザーという表現が使用されます。以下のように区別します: 内部ユーザー:Dify エンタープライズ版ワークスペース内で登録されたユーザーまたは管理バックエンドで追加されたユーザー。 外部ユーザー:Dify エンタープライズ版ワークスペースにいないユーザー
1. Okta で新しいアプリケーションを作成
-
Okta の管理者バックエンドページにアクセスし、Applications ページに移動します。Create App Integration ボタンをクリックし、OIDC ログイン方式と Web Application アプリケーションタイプを選択します。
- ページの指示に従ってアプリケーション名を入力し、要件に応じて認可範囲等の情報を入力してください。
Sign-in redirect URIsフィールドには Dify エンタープライズ Callback URL を入力する必要があります。取得方法は下記をご参照ください。Sign-out redirect URIsフィールドは空白にしてください。
2. コールバック URL の取得
有効化する必要がある SSO 範囲に応じて、コールバック URL は異なります。システム管理者は、Dify エンタープライズのコールバック URL を対応する GitHub OAuth2 アプリケーション内に入力して、作成プロセスを完了する必要があります。- Workspace
- WebApp Members(内部ユーザー向け)
- WebApp External Users(外部ユーザー向け)
管理バックエンド → アイデンティティ認証 → メンバー認証 → SSO アイデンティティプロバイダー → New Identity Provider → New OAuth2 Provider をクリックし、一番下に記載のある Workspace Callback URL を確認します。通常、以下の形式になります:
- それをOkta App内の Sign-in redirect URIs フィールドに貼り付け、アプリケーションを保存します。
3. OAuth2 認証を有効化
3.1 Okta アプリケーションで重要な情報を取得
-
Okta アプリケーションの “General” ページに移動し、以下のフィールドの情報をコピーしてください。後続の設定に使用します:
- Client ID
- Client secret
-
(オプション)Proof Key for Code Exchange (PKCE) → Require PKCE as additional verification をチェックし、Save をクリックします。このオプションをチェックすると、Oktaは認可コードをトークンに交換する際に
code_verifierの検証を強制し、認可コード傍受攻撃のリスクを軽減します。 -
“Sign On” ページに切り替え、Issuer を固定リンクに設定します。
3.2 OAuth2 認証を設定
Dify エンタープライズ版 Authentication ページにアクセスし、+ New Identity Provider → New OAuth2 Provider をクリックし、指示に従って以下の情報を順次入力します:- Client ID
- Client Secrets
- OktaアプリケーションでPKCE検証が有効になっている場合、ウィンドウ内で PKCE追加検証 スイッチを有効にする必要があります
- Authorization Endpoint:
https://your-okta-issuer-url/v1/authorize - Token Endpoint:
https://your-okta-issuer-url/v1/token - User Info Endpoint:
https://your-okta-issuer-url/v1/userinfo - Scopes:
openid,profile,email
your-okta-issuer-url の取得方法:Security → API → Authorization Servers → Issuer URI。Okta App を通じてより多くのフィールド情報を取得する方法については、Use of the Issuerを参照してください。
4. SSO 強制認証を有効化(任意)
システム管理者は、以下の2つのシナリオで SSO Enforcement オプションを有効化することで、SSO認証を強制できます:- Workspace:Dify エンタープライズ版 Workspace にログインする際に認可が必要。
- WebApp:現在の Dify エンタープライズ版で作成されたアプリケーションを使用する際に認証が必要。
