Azure Active Directory (Pro)
DefectDojo ProはAzure Active Directory(Azure AD)によるログインをサポートしており、ユーザーグループの自動同期も含まれます。オープンソース版のDefectDojoにはSSOは含まれていません。オープンソース版のアクセス制御についてはAuthorized Usersを参照してください。
Prerequisites
DefectDojoを設定する前に、Azureポータルで以下の手順を完了してください。
Azure Active Directoryで新しいアプリを登録します。
登録したアプリから以下の値を控えます。
- Application (client) ID
- Directory (tenant) ID
- Certificates & Secretsで新しいClient Secretを作成し、その値を控えます
- Application ID URI
Authentication > Redirect URIsで、WebタイプのURIを追加します。
https://your-instance.cloud.defectdojo.com/complete/azuread-tenant-oauth2/
Configuration
DefectDojoでEnterprise Settings > OAuth Settingsに移動し、Azure ADを選択してフォームに入力します。
- Azure AD OAuth Key — Application (client) IDを入力します
- Azure AD OAuth Secret — Client Secretを入力します
- Azure AD Resource — デフォルトは
https://graph.microsoft.com/です。これはDefectDojoがMicrosoft Graph Web APIから追加情報(グループ名など)を読み取るために使用するURIです。グループ名が別のAPIリソースに保存されている場合のみ変更してください。 - Azure AD Tenant ID — Directory (tenant) IDを入力します
- Azure AD Groups Filter — 必要に応じて正規表現を入力し、インポートするユーザーグループを制限します(下記のGroup Mappingを参照)
Enable Azure AD OAuthをチェックしてフォームを送信します。ログインページにLogin With Azure ADボタンが表示されます。
Group Mapping
グループマッピングを使うと、DefectDojoはAzure ADからUser Groupのメンバーシップをインポートできます。DefectDojoのユーザーグループは、RBACを通じて製品と製品タイプへのアクセスを管理します。
Enable Azure AD OAuth Groupingをチェックするとこの機能が有効になります。ログイン時、DefectDojoはユーザーのAzure ADグループを既存のDefectDojoグループと照合します。DefectDojoに見つからないグループは自動的に作成されます。
一部のグループのみをインポートするには、Azure AD Groups Filterフィールドに正規表現を入力します。例:
^team-.*—team-で始まるすべてのグループに一致teamA|teamB|groupC— 特定の名前のグループに一致
Configuring Azure AD to send groups
Azure ADトークンには、グループIDを含めるよう設定する必要があります。これがないと、トークンにグループ情報が含まれません。
設定手順:
- Azure ADのトークン設定でGroup Claimを追加します。どのグループタイプを選ぶべきか分からない場合はAll Groupsを選択してください。
- Emit groups as role claimsは有効にしないでください。
- アプリケーションのAPI権限に
GroupMember.Read.AllまたはGroup.Read.Allを追加します。付与される権限が少ないGroupMember.Read.Allが推奨されます。
Group Cleaning
Enable Azure AD OAuth Group Cleaningが有効な場合、Azure AD同期によって作成されたDefectDojoグループは、メンバーがいなくなると自動的に削除されます。Azure ADでユーザーがグループから削除されると、DefectDojo上の対応するグループからも削除されます。