Skip to content

ymasaoka/Sample-MSAL-Python

Repository files navigation

Sample-MSAL-Python

本リポジトリは、MSAL for Python のサンプルコードを掲載しています。
本リポジトリにある各種コードは、Docker Compose を使用して簡単に実行できるようになっています。

実行環境準備

Docker コンテナーの起動

本リポジトリをクローンし、ルートディレクトリに web-variables.env ファイルを作成します。
web-variables.env ファイルには、以下の情報を記載し、起動する Python コンテナーの環境変数として利用できるようにします。

CLIENT_ID={サービスプリンシパルのクライアント ID}
CLIENT_SECRET={サービスプリンシパルのクライアントシークレット値}
TENANT_ID={テナント ID}
CLIENT_CERTIFICATION_PATH=./certs/{サービスプリンシパル認証時に SSL 証明書を使用する場合の秘密鍵ファイル}
CLIENT_CERTIFICATION_THUMBPRINT={サービスプリンシパル認証時に SSL 証明書を使用する場合の thumbprint (拇印) 値}

web-variables.env ファイルを用意したら、Docker コンテナーを起動します。

docker compose up -d --build

自己署名証明書の作成

サービスプリンシパルを利用する際の認証方式には、クライアントシークレットではなく証明書を利用することも可能です。
秘密鍵ありの SSL 証明書を サービスプリンシパルに登録し、MSAL for Python での接続時には、thumbprint と秘密鍵ファイルを使用します。

証明書に、自己署名証明書を使用する場合は、以下を参考に自己署名証明書を作成してください。

この例では、openssl を使用して作成しています。
本リポジトリに記載のコードは、下記の手順で払い出した自己署名証明書を使用して動作確認をしたものになります。

openssl genrsa 2024 > ca-key.pem
openssl req -new -key ca-key.pem > server.csr
openssl x509 -req -days {証明書が有効期限切れになるまでの日数} -signkey ca-key.pem < server.csr > server.crt

ca-key.pem が秘密鍵ファイル、server.crt が自己署名証明書 (SSL 証明書) です。

サンプルコードの実行

sample フォルダにある Python コードは、以下の形で実行が可能です。

docker compose run --rm app python3 servicePrincipal/{実行したい Python ファイル名}

Releases

No releases published

Packages

No packages published