2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudflareAdvent Calendar 2023

Day 12

Cloudflare Zero Trust で Microsoft Entra ID の再認証時に必要な対話操作を強制する

Last updated at Posted at 2024-03-13

目的

Cloudflare Zero Trust と Microsoft Entra ID を使って、以下のような認証フローを確認します。

参考:Microsoft Entra ID で再認証時に必要な対話操作を強制するには

以下の prompt オプションをつけてリクエストすることで、
シングルサインオンするごとに必要なユーザ対話操作の種類を指定できます。

  • Microsoft ID プラットフォームと OAuth 2.0 認証コード フロー - Microsoft identity platform | Microsoft Learn
    prompt(省略可能):ユーザーとの必要な対話の種類を指定します。 有効な値は、login、none、consent、select_account です。
    • prompt=login を指定すると、ユーザーはその要求に対して自分の資格情報の入力を強制され、シングル サインオンが無効になります。
    • prompt=none はその逆です。 これを指定すると、ユーザーに対して対話形式のプロンプトは表示されません。 シングル サインオンを使用して確認なしで要求を完了できない場合は、Microsoft ID プラットフォームから interaction_required エラーが返されます。
    • prompt=consent を指定すると、ユーザーがサインインした後で OAuth 同意ダイアログが表示され、アプリへのアクセス許可の付与をユーザーは求められます。
    • prompt=select_account を指定すると、シングル サインオンは中断され、まったく別のアカウントの使用を選択するためのオプションとして、セッション内または記憶されているアカウント内のいずれかにある全アカウントを一覧表示するアカウント選択エクスペリエンスが提供されます。

Cloudflare Zero Trust で再認証時に必要な対話操作を強制するには

以下の PUT メソッドで config 内の prompt パラメータとして指定できます。

以下のコマンドで適用できます。

"prompt": "login"

Microsoft Entra ID 側で有効なセッションが残っていても、再度ログイン処理を強制的に要求されます。

image.png

"prompt": "select_account"

アカウント選択画面が強制的に要求されます。
Microsoft Entra ID 側で有効なセッションが残っている場合、そのまま Signed in ユーザを選択すれば、特にログイン処理は強制されません。

image.png

"prompt": "none"

Microsoft Entra ID 側で有効なセッションが残っていれば、特に強制的にログインやアカウント選択の画面で要求されることはありません。

Microsoft Entra ID 側で有効なセッションが残っていない場合には、 AADSTS50058 エラーとなります。

(Cloudflare Zero Trust 経由で対話ログイン操作を求めることはないため、常に Microsoft Entra ID 側で先にログインしてある必要があります。)

  • Microsoft Entra 認証と承認のエラー コード - Microsoft identity platform | Microsoft Learn
    AADSTS50058
    UserInformationNotProvided - シングル サインオンに関するセッション情報が不十分です。 これは、ユーザーがサインインしていないことを意味します。 これは、ユーザーが認証されておらず、まだサインインしていないときに想定される一般的なエラーです。
    ユーザーがその前にサインインした SSO のコンテキストでこのエラーが発生する場合は、SSO セッションが見つからなかったか無効であったことを意味します。
    prompt=none が指定されている場合、このエラーがアプリケーションに返される可能性があります。

image.png

参考:"prompt": "consent"

ちなみに consent は指定できず、上記の3つのいずれかを指定する形です。

{
    "errors": [
        {
            "code": 12130,
            "message": "access.api.error.invalid_request: prompt is invalid, must be one of the following: login, none, select_account"
        }
    ],
    "messages": [],
    "result": null,
    "success": false
}
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?