なんかいろいろと書いてくブログ

関東のどこかで働く、一般人

Azure Functions URI に対するAAD認証の追加

AzureFunctionsの認証にはAttributeにAuthLevelを指定することによる認証が用意されている

Azure Functions の HTTP トリガー | Microsoft Learn

しかし、Getメソッドの場合URLにクエリパラメータとしてキーを保持しており認証として不安なので AzureADによる認証を追加した

基本的にはURIに対してAAD認証を追加する形になるので、Web Appに対しても同様の実装になるはず

参照

learn.microsoft.com

前提

  • Azure ADが構築されていること
  • Azure Functionsがデプロイされていること

実装

AzureADに対象のアプリを登録

最認証を行いたいAzureADテナントとAzureFunctionsを紐づけるためにアプリを登録をおこなう

  • リダイレクト URIとして、Webを選択して下記URIを指定
    {app-url}/.auth/login/aad/callback

リダイレクトURIを指定する
リダイレクトURI

{app-url}はAAD認証をかけたいFunctionsのURIでFunctionsの概要から確認できる

URI自体は複数追加できるので、同じアプリを複数動かしている場合はここに登録することで対応できる

  • 暗黙的な許可及びハイブリットフローとしてIDトークンを有効にする
    IDトークンを有効化
    IDトークンを有効化

AzureFunctiosn 認証プロパイダーの追加

FunctionsでAzure ADを有効にするためにプロバイダーを追加

  • プロバイダーにMicrosoft
  • クライアントID にAzureのアプリの登録で作成したクライアントIDを登録
  • 発行者のURLに<authentication-endpoint>/<tenant-id>/v2.0を指定
    • authentication-endpointはAzureAD認証エンドポイントを指定
      (基本的にはhttps://login.microsoftonline.comで良いはず)

プロバイダーの追加
プロバイダーの追加

FunctionsとAzureADが同一ディレクトリないにある場合はこのディレクトリ内の既存アプリの登録を選択で対応できるよう
プロバイダーの追加はauthsettingsV2よりbicepからも行える

learn.microsoft.com 上記設定が反映されるとAAD認証が追加される