OAuth 認証コード フロー

認証コード フローは、サードパーティ アプリケーションがユーザーの資格情報を公開することなくユーザーのリソースにアクセスできるようにする OAuth 2.0 で使用されているセキュリティ プロトコルです。

このフローでは、クライアント アプリケーションは、ユーザーを認証サーバーにリダイレクトし、そこでユーザーがログインし、クライアントのアクセス リクエストを承認します。 承認後、認証サーバーが認証コードをクライアントに送信し、クライアントがアクセス トークンおよび (オプションで) 更新トークンと交換します。 このアクセス トークンは、その後、ユーザーに代わってリソース サーバーへの認証されたリクエストを行うために使用されます。

このフローは、ユーザーが資格情報を直接、共有することなく、自分のリソース (データやサービスなど) へのアクセス権をサードパーティ アプリケーションに付与したい場合によく使用されます。

認証コード フローと PKCE (Proof Key for Code Exchange) による認証コード フローの主な違いは、特にモバイル アプリケーションおよびネイティブ アプリケーションに対する特定の攻撃を防止するために使用されるセキュリティ メカニズムにあります。

標準の認証コード フローでは、ユーザーが認証サーバーで認証された後、クライアントが認証コードを受信します。 クライアントが、このコードをアクセス トークンと交換します。 しかし、このフローは、認証コード窃取攻撃に対して脆弱です。この攻撃では、攻撃者は認証コードを窃取し、それを使用してアクセス トークンを取得することがあります。

PKCE による認証コード フローは、認証リクエストを認証するために、動的に生成されたシークレット (コード検証ツール) を使用することで、追加のセキュリティ レイヤーを追加します。 これにより、特にモバイルやネイティブアプリケーションなど、クライアントシークレットを安全に保存するのが難しい環境で、より安全になります。

認証コード フローを使用して認可タイプを作成するには:

手順

  1. OAuth 接続の作成 のステップ 1 から 6 を完了します。
  2. 認可コードフロー または PKCEを使用した認可コードフロー として助成金の種類を選択し、ユーザー認証をトークン発行者から分離します。 これは、付与タイプが機密資格情報を公開することなく、長期間のアクセスのためのリフレッシュトークンをサポートするため、セキュリティを強化します。 Microsoft 365 Outlook パッケージで Authorization Code Flow を使用する際に、以下の権限を確認してください: 「アプリケーションのアクセス許可」を参照してください。
    • Mail.Read
    • Mail.ReadWrite
    • Mail.Send
    • MailboxSettings.Read
    • MailboxSettings.ReadWrite
    • offline_access
    • openid
    • User.Read
    • User.ReadBasic.All
    認証方法 Client Secret PostAuthorization Code Flow with PKCE 認可タイプと並行して使用する必要があります。そうしないと、検証エラーが発生します。
  3. OAuth 接続の作成 のステップ 8 から 18 を完了してください。