Microsoft 365の場合。Azureからユーザー情報を取得する

Deeplからの自動翻訳

多くの企業がMicrosoft 365(旧Office 365)を利用しています。Microsoft は Office アプリケーションへのアクセスを提供するほか、Azure ベースの Active Directory を提供し、ユーザーは Web ブラウザーを使用して Microsoft Sharepoint や OneDrive などのサービスにログインしてアクセスすることができます。

Microsoftのすべてのサービスで、メールアドレスに基づく同じシングルサインオンが使用されています。4D v19 R6から、4D NetKitは、このコンセプトに参加することができ、ユーザーは、いつもの会社の認証情報を使って、アプリケーションにログインすることができるようになります。

シングルサインオンを可能にするだけでなく、認証されたユーザーの電子メール、部署、電話番号などの情報を取得することが可能になります。管理者が許可すれば、同じ会社の同僚に関する情報を取得することもできます。

どのように動作するか見てみましょう。

まず、ユーザーの情報にアクセスするためには、ユーザーの代わりにアクセス権を取得し、OAuth2プロバイダを作成するために New OAuth2 providerコマンドを使用してOAuth2プロバイダを作成します。

$param:=New object()
$param.name:="Microsoft"
$param.permission:="signedIn"
$param.clientId:="XXX"
$param.redirectURI:="http://127.0.0.1:50993/authorize/"
$param.scope:="https://graph.microsoft.com/.default"
// Create new OAuth2 object
$tokenProvider:=New OAuth2 provider($param)

OAuth2プロバイダの準備ができたら New Office365 providerコマンドを使用して、Microsoft Graph API を介して Microsoft 365 アカウントへのアクセスを管理するオブジェクトをインスタンス化します。

var $Office365 : cs.NetKit.Office365Provider
$Office365:=New Office365 provider($tokenProvider)

ユーザ情報

displayName、givenNameなどのユーザ情報を取得できます。

サインインモードで接続している場合は、現在のユーザ情報を取得することができます。

$currentUser:=$Office365.user.getCurrent()
//$currentUser=
//{displayName:My Name,givenName:Name,mail:myname@mycompany.com,...}といった具合です。

Azure ADの “work or school “アカウントに所属している場合、所属する組織の特定のユーザーの情報にアクセスすることができます。

$user:=$Office365.user.get("myname@mycompany.com")

または、組織のすべてのユーザーのリストにアクセスします。

$users:=$Office365.user.list()

より詳細な情報はドキュメントをご覧ください。また、あなたの経験を4Dフォーラムで共有することもできます。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。