Microsoft Entra 管理センターにログインします。
概要
Microsoft Graph API を使用すると、デベロッパーは Microsoft Entra、Exchange Online、SharePoint、Teams などの Microsoft サービス間でタスクを統合および自動化できます。この API では、RESTful Web サービスを使用して、ユーザー、グループ、ファイル、メッセージなどの幅広いリソースへのアクセス権を付与します。
ColdFusion の Microsoft Graph API を使用すると、Microsoft Entra ID でユーザーストアを作成および管理するための統合が可能になります。ユーザーストアは、名前、プロファイル写真、その他のユーザー詳細などのプロファイルデータのリポジトリとして機能します。ユーザーの新規登録、プロファイルの更新、ユーザーデータのメンテナンスを処理するための CRUD(作成、読み取り、更新、削除)操作をサポートします。
ID およびアクセス管理(IAM)のコアコンポーネントである Microsoft Entra ID(旧 Azure Active Directory)内でのユーザー ID の管理に焦点を当てています。Microsoft Entra ID では、グループやアプリケーションの管理などの機能を提供しますが、ColdFusion では、ユーザー管理(すべての IAM システムで普遍的にサポートされている重要な機能)を提供します。ColdFusion では、Microsoft Graph API を使用して、テナントやディレクトリの管理を含む Microsoft Entra ID のユーザー管理を完全に制御できます。
ColdFusion アプリケーションでは通常、cfldap タグを使用して LDAP(Lightweight Directory Access Protocol)ディレクトリと対話します。これは従来のディレクトリには有効ですが、Microsoft Entra ID は従来の Active Directory ではありません。これは、本質的に LDAP プロトコルをサポートしていないクラウドベースの IAM サービスです。そのため、ColdFusion では、Microsoft Graph API を通じて Microsoft Entra のユーザーストア API を導入し、クラウドでのユーザー管理をサポートします。
-
-
Microsoft Entra ID/アプリの登録/ 新規登録に移動します。
-
アプリケーション名を指定し、サポートされているアカウントタイプを選択し、リダイレクト URI を設定します。詳しくは、Microsoft ID プラットフォームでアプリケーションを登録するを参照してください。
-
アプリを登録したら、アプリケーション(クライアント)ID とディレクトリ(テナント)ID をメモします。
アプリケーションの登録
-
アプリの登録の「API のアクセス許可」で、API権限を割り当てます。操作に応じて、User.Read、User.ReadWrite、Directory.ReadWrite などの権限を含めます。
-
「管理者の同意を与えます」オプションを使用して、権限を承認します。
-
認証用に、「証明書とシークレット」でクライアント秘密鍵を生成します。
アクセストークンと更新トークンの生成
- アクセストークンは認証に使用され、API 操作を実行するために生成する必要があります。
- 更新トークンは有効期間が長く、新しいアクセストークンを生成するために使用できます。
ColdFusion 関数
GetMSGraphServiceClient
Graph API サービスと通信するクライアントオブジェクトのインスタンスを作成します。 このクライアントにより、Microsoft Graph エンドポイントへの認証済み API リクエストの作成が簡素化されます。また、Microsoft Graph へのリクエストを承認するために、認証プロバイダー(またはアクセス トークンなど)を使用してクライアントを設定します。
シンタックス
getMSGraphServiceClient({access_token = “add your token here”})
GetOauthAccessToken
cfoauth と同様に、サードパーティの OAuth 2 認証プロバイダーをアプリケーションに簡単に統合できます。
戻り値
access_token、refresh_token、および有効期限を含む構造体。
シンタックス
getOauthAccessToken(type,clientID,scope [, state] [, authendpoint] [, accesstokenendpoint], granttype, secretkey [, urlparams])
パラメーター
パラメーター | 必須/オプション | 説明 |
type | 必須 | 認証およびトークンサーバーの種類またはエンドポイントを指定する必要があります。 |
clientid | 必須 | 登録ポータルがアプリを割り当てたアプリケーション(クライアント)ID。Microsoft Graph アプリケーションおよびサービスプリンシパルオブジェクトでは appId とも呼ばれます。 |
範囲 | 必須 | ユーザーが同意する範囲のカンマ区切りリスト。 |
状態 | オプション | state 変数は、認証とリダイレクトが完了した後に、任意の情報を Web アプリケーションに渡す場合に使用します。 この属性に渡した値は、認証後に Web アプリケーションに返されます。 これは、クロスサイトリクエストフォージェリ(CSRF)保護に便利です。 この属性には、ColdFusion のセキュリティ関連の CSRF 関数を使用できます。 |
authendpoint | オプション |
デフォルト:
種類を指定しない場合、これは、ユーザー認証用に呼び出されるエンドポイント URL として使用されます。 |
accesstokenendpoint | オプション |
種類を指定しない場合、これは、アプリ認証用に呼び出されるエンドポイント URL として使用されます。 |
granttype | 必須 | デフォルトは authorization_code ですが、 client_credentials と refresh_token もサポートします |
secretkey | 必須 | アプリのアプリ登録ポータルで作成したクライアントシークレット。 ColdFusion は証明書資格情報もサポートします。ここで引数は pkcs12 形式のファイルパスとパスワードです。 |
urlparams | オプション | 追加オプションは、URL クエリ文字列としてエンドポイントに渡されます。 |
例
<cfscript> cred = { type:“microsoft”, tenant:“tenant-id”, clientid:“client-id”, scope:“offline_access user.read mail.read”, secretkey:“secret-key” }; writeDump(getOauthAccessToken(cred)); </cfscript>
ユーザー管理
ユーザーの一覧表示
組織の Microsoft Entra ID 内のすべてのユーザーを一覧表示します。この操作には、「user.read.all」権限が必要です。このメソッドは、各構造体がユーザーを表す構造体の配列を返します。
権限
権限タイプ | 権限(最小権限から最大権限まで) |
委任済み(職場または学校のアカウント) | User.ReadBasic.All、User.Read.All、User.ReadWrite.All、Directory.Read.All、Directory.ReadWrite.All |
アプリケーション | User.Read.All、User.ReadWrite.All、Directory.Read.All、Directory.ReadWrite.All |
<cfscript> // ユーザーを一覧表示します graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); usersInTheTenant = graphServiceClient.listUsers(); writeOutput(ArrayLen(usersInTheTenant.value)); </cfscript>
例 - 条件検索
<cfscript> res1 = graphServiceClient.listUsers({ search: “displayName: John” }) writeDump(#res1#); </cfscript>
このスクリプトは、名前が John* で始まるすべてのユーザーを返します。
例:すべてのユーザーを取得するには、top=-1 を使用します。
デフォルトでは、100 人のユーザーのみが一覧表示されます。すべてのユーザーを返す場合は、top=-1 を使用します。
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); //top=-1 を使用すると、すべてのユーザーが取得されます。 allUser = graphServiceClient.listUsers({top = -1}); writeDump(allUser) </cfscript>
ユーザーの作成
Entra ID でプログラム的にユーザーを作成します。この操作には、「user.readwrite.all」または「directory.readwrite.all」権限が必要です。このメソッドは、作成されたユーザーの ID を返します。
権限
権限タイプ |
権限(最小権限から最大権限まで) |
委任済み(職場または学校のアカウント) | User.ReadWrite.All、Directory.ReadWrite.All |
アプリケーション | User.ReadWrite.All、Directory.ReadWrite.All |
必須パラメーター:
パラメーター |
Type |
説明 |
accountEnabled |
ブール値 |
アカウントが有効になっている場合は true 、それ以外の場合は false。 |
displayName |
文字列 |
ユーザーのアドレス帳に表示される名前。 |
mailNickname |
文字列 |
ユーザーのエイリアス |
userPrincipalName |
文字列 |
ユーザープリンシパル名(someuser@contoso.com)。 これは、インターネット標準 RFC 822 に基づいた、ユーザーのインターネットスタイルのログイン名です。慣例により、これはユーザーのメール名にマッピングする必要があります。一般的な形式は alias@domain です。domain はテナントの検証済みドメインのコレクション内に存在している必要があります。 テナントの検証済みドメインには、組織の verifiedDomains プロパティからアクセスできます。 |
passwordProfile |
構造体 |
ユーザーのパスワードプロファイル。 |
オプションのパラメーター:
パラメーター | 型 | 説明 |
ageGroup | 文字列 | ユーザーの年齢グループを設定します。 許可された値:null、Minor、notAdult、Adult notAdult:ユーザーは、法定規制のある国(米国、英国、欧州連合、韓国など)の出身であり、ユーザーの年齢は、子供の年齢の上限(国によって異なる)を超え、成人の年齢の下限(国または地域に基づいて規定)未満です。 したがって、基本的に、規制対象の国ではティーンエイジャーは成人ではないとみなされます。 |
birthday | 日付 | ユーザーの誕生日。タイムスタンプタイプは ISO 8601 形式を使用して日付と時刻の情報を表し、常に UTC 時間になります。 |
businessPhones | 文字列配列 | ユーザーの電話番号。 |
city | 文字列 | ユーザーが所在する市区町村。 |
companyName | 文字列 | ユーザーが関連付けられている会社の名前。このプロパティは、外部ユーザーの所属会社を説明するのに役立ちます。最大長は 64 文字です。 |
consentProvidedForMinor | 文字列 | 未成年者の同意を得たかどうかを設定します。許可された値:null、Granted、Denied、NotRequired。 |
国 | 文字列 | ユーザーが所在する国/地域。 |
部署 | 文字列 | ユーザーが働いている部署の名前。 |
employeeId | 文字列 | 組織によってユーザーに割り当てられた従業員識別子。最大長は 16 文字です。 |
employeeType | 文字列 | 企業の従業員タイプを取得します。select パラメーターでのみ返されます。 |
givenName | 文字列 | ユーザーの名前(名)。 |
employeeHireDate | 日付 | ユーザーの入社日。 |
employeeLeaveDateTime | 日付 | ユーザーが組織を離脱した日時、または離脱する日時。 |
employeeOrgData | 構造体 | ユーザーに関連付けられた組織データ(division、costCenter など)を表します。 { division: "文字列", costCenter: "文字列" } |
interests | 文字列配列 | ユーザーが自分の関心を説明するためのリスト。 |
jobTitle | 文字列 | ユーザーの役職。 |
文字列 | ユーザーの SMTP アドレス(例:jeff@contoso.com)。このプロパティを変更すると、ユーザーの proxyAddresses コレクションも更新され、値が SMTP アドレスとして含まれます。Azure AD B2C アカウントの場合、このプロパティは一意の SMTP アドレスを使用して最大 10 回までしか更新できません。null に更新できません。 | |
mobilePhone | 文字列 | ユーザーのプライマリ携帯電話番号。 |
mySite | 文字列 | ユーザーの個人用サイトの URL。 |
officeLocation | 文字列 | ユーザーの勤務先のオフィスの所在地。 |
onPremisesExtensionAttributes | 15 個の拡張属性値を持つ構造体 | ユーザーの extensionAttributes 1~15 が含まれます。個々の拡張属性は選択またはフィルタリングできません。 onPremisesSyncEnabled ユーザーの場合、このプロパティセットの権限ソースはオンプレミスで、読み取り専用です。 これらの拡張属性は、Exchange カスタム属性 1~15 とも呼ばれます。 |
onPremisesImmutableId | 文字列 | このプロパティは、オンプレミスの Entra ID ユーザーアカウントを Microsoft Entra ユーザーオブジェクトに関連付けるために使用されます。ユーザーの userPrincipalName(UPN)プロパティに連合ドメインを使用している場合は、Graph で新しいユーザーアカウントを作成する際にこのプロパティを指定する必要があります。重要:このプロパティを指定する際に、$ および _ 文字は使用できません。 |
otherMails | 文字列の配列 | ユーザーの追加のメールアドレスのリスト。例:["bob@contoso.com", "Robert@fabrikam.com"]。 |
PasswordPolicies | 文字列 | ユーザーのパスワードポリシーを指定します。この値は、DisableStrongPasswordという 1 つの値を持つ列挙です。この値により、既定のポリシーよりも弱いパスワードを指定できます。DisablePasswordExpiration も指定できます。これら 2 つは一緒に指定できます。例:DisablePasswordExpiration、DisableStrongPassword。 |
passwordProfile | 構造体 | ユーザーのパスワードプロファイル。 |
pastProjects | 文字列の配列 | ユーザーが過去のプロジェクトを列挙するためのリスト。 |
postalCode | 文字列 | ユーザーの住所の郵便番号。郵便番号は、ユーザーの国/地域に固有のものです。米国では、この属性に郵便番号が含まれます。 |
prefferedLanguage | 文字列 | ユーザーが使用する言語。ISO 639-1 コードに従う必要があります(例:en-US)。 |
responsibilities | 文字列の配列 | ユーザーが自分の責任を列挙するためのリスト。 |
schools | 文字列の配列 | ユーザーが出席した学校を列挙するためのリスト。 |
skills | 文字列配列 | ユーザーが自分のスキルを列挙するためのリスト。 |
state | 文字列 | ユーザーの住所の都道府県。 |
streetAddress | 文字列 | ユーザーの勤務先の住所。 |
surname | 文字列 | ユーザーの姓(姓または名)。 |
usageLocation | 文字列 | 2 文字の国コード(ISO 標準 3166)。国におけるサービスの可用性を確認するための法的要件により、ライセンスが割り当てられるユーザーに必要です。 例として、US、JP、GB などが挙げられます。null 値は使用できません。 |
userType | 文字列 | ディレクトリ内のユーザータイプを分類するために使用できる文字列値。 |
パラメーター | 型 | 必須 | 説明 |
password | 文字列 | はい | ユーザーのパスワード。このプロパティは、ユーザーを作成するときに必要です。更新できますが、ユーザーは次回のログイン時にパスワードを変更する必要があります。パスワードは、ユーザーの passwordPolicies プロパティで指定された最小要件を満たしている必要があります。デフォルトでは、強力なパスワードが必要です。 |
forceChangePasswordNextSignIn | ブール値 | いいえ | ユーザーが次回のログイン時にパスワードを変更する必要がある場合は true、それ以外の場合は false |
例
<cfscript> // ユーザーを作成します graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); aUser = {accountEnabled = true, displayName = “John Adams”, mailNickName = “JohnA”, userPrincipalName = “JAD@example.com”} graphServiceClient.createUser(aUser); </cfscript>
ユーザーの取得
このメソッドは、ログインしているユーザーに関する情報や、ID が指定されている場合は特定のユーザーに関する情報を取得します。メソッドが成功した場合、select を使用して特定のプロパティを指定しない限り、デフォルトのプロパティが返されます。
例 - ID によるユーザーの取得
<cfscript> //ID に基づいて特定のユーザー情報を取得します userInfoBasedOnID = graphServiceClient.getUser(“user-id”); writeDump(var=#userInfoBasedOnID#, format=“text”); </cfscript>
例 - ログインユーザーの取得
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); loggedInUser = graphServiceClient.getUser(); writeDump(#loggedInUser#); </cfscript>
ユーザーの更新
このメソッドは、携帯電話番号、名前、趣味、住所の更新など、ユーザー情報を変更します。 この操作には適切な権限が必要です。
権限
権限タイプ | 権限(最小権限から最大権限まで) |
委任済み(職場または学校のアカウント) | User.ReadWrite、User.ManageIdentities.All、User.EnableDisableAccount.All、User.ReadWrite.All、Directory.ReadWrite.All |
アプリケーション | User.ManageIdentities.All、User.EnableDisableAccount.All、User.ReadWrite.All、Directory.ReadWrite.All |
パラメーター
パラメーター | 型 | 説明 |
accountEnabled | Boolean | アカウントが有効になっている場合は true 、それ以外の場合は false。このプロパティは、ユーザーを作成するときに必要です。グローバル管理者とは別に、Directory.AccessAsUser.All 委任権限を割り当てられた権限認証管理者は、テナント内のすべての管理者の accountEnabled ステータスを更新できます。 |
ageGroup | 文字列 | ユーザーの年齢グループを設定します。 許可された値:null、Minor、notAdult、Adult notAdult:ユーザーは、法定規制のある国(米国、英国、欧州連合、韓国など)の出身であり、ユーザーの年齢は、子供の年齢の上限(国によって異なる)を超え、成人の年齢の下限(国または地域に基づいて規定)未満です。 したがって、基本的に、規制対象の国ではティーンエイジャーは成人ではないとみなされます。 |
birthday | 日付 | ユーザーの誕生日。タイムスタンプタイプは ISO 8601 形式を使用して日付と時刻の情報を表し、常に UTC 時間になります。 |
businessPhones | 文字列配列 | ユーザーの電話番号。 |
city | 文字列 | ユーザーが所在する市区町村。 |
companyName | 文字列 | ユーザーが関連付けられている会社の名前。このプロパティは、外部ユーザーの所属会社を説明するのに役立ちます。最大長は 64 文字です。 |
consentProvidedForMinor | 文字列 | 未成年者の同意を得たかどうかを設定します。許可された値:null、Granted、Denied、NotRequired。 |
国 | 文字列 | ユーザーが所在する国/地域。 |
部署 | 文字列 | ユーザーが働いている部署の名前。 |
displayName | 文字列 | ユーザーのアドレス帳に表示される名前。これは通常、ユーザーの名、ミドルネームのイニシャル、姓の組み合わせです。このプロパティはユーザーが作成されたときに必要で、更新中にクリアすることはできません。 |
employeeId | 文字列 | 組織によってユーザーに割り当てられた従業員識別子。最大長は 16 文字です。 |
employeeType | 文字列 | 企業の従業員タイプを取得します。select パラメーターでのみ返されます。 |
givenName | 文字列 | ユーザーの名前(名)。 |
employeeHireDate | 日付 | ユーザーの入社日。 |
employeeLeaveDateTime | 日付 | ユーザーが組織を離脱した日時、または離脱する日時。 |
employeeOrgData | 構造体 | ユーザーに関連付けられた組織データ(division、costCenter など)を表します。 { division: "文字列", costCenter: "文字列" } |
interests | 文字列配列 | ユーザーが自分の関心を説明するためのリスト。 |
jobTitle | 文字列 | ユーザーの役職。 |
文字列 | ユーザーの SMTP アドレス(例:jeff@contoso.com)。このプロパティを変更すると、ユーザーの proxyAddresses コレクションも更新され、値が SMTP アドレスとして含まれます。Azure AD B2C アカウントの場合、このプロパティは一意の SMTP アドレスを使用して最大 10 回までしか更新できません。null に更新できません。 | |
mailNickName | 文字列 | ユーザーのメールエイリアス。このプロパティは、ユーザーの作成時に指定する必要があります。 |
mobilePhone | 文字列 | ユーザーのプライマリ携帯電話番号。 |
mySite | 文字列 | ユーザーの個人用サイトの URL。 |
officeLocation | 文字列 | ユーザーの勤務先のオフィスの所在地。 |
onPremisesExtensionAttributes | 15 個の拡張属性値を持つ構造体 | ユーザーの extensionAttributes 1~15 が含まれます。個々の拡張属性は選択またはフィルタリングできません。 onPremisesSyncEnabled ユーザーの場合、このプロパティセットの権限ソースはオンプレミスで、読み取り専用です。 これらの拡張属性は、Exchange カスタム属性 1~15 とも呼ばれます。 |
onPremisesImmutableId | 文字列 | このプロパティは、オンプレミスの Entra ID ユーザーアカウントを Microsoft Entra ユーザーオブジェクトに関連付けるために使用されます。ユーザーの userPrincipalName(UPN)プロパティに連合ドメインを使用している場合は、Graph で新しいユーザーアカウントを作成する際にこのプロパティを指定する必要があります。重要:このプロパティを指定する際に、$ および _ 文字は使用できません。 |
otherMails | 文字列の配列 | ユーザーの追加のメールアドレスのリスト。例:["bob@contoso.com", "Robert@fabrikam.com"]。 |
PasswordPolicies | 文字列 | ユーザーのパスワードポリシーを指定します。この値は、DisableStrongPasswordという 1 つの値を持つ列挙です。この値により、既定のポリシーよりも弱いパスワードを指定できます。DisablePasswordExpiration も指定できます。これら 2 つは一緒に指定できます。例:DisablePasswordExpiration、DisableStrongPassword。 |
passwordProfile | 構造体 | ユーザーのパスワードプロファイル。 |
pastProjects | 文字列の配列 | ユーザーが過去のプロジェクトを列挙するためのリスト。 |
postalCode | 文字列 | ユーザーの住所の郵便番号。郵便番号は、ユーザーの国/地域に固有のものです。米国では、この属性に郵便番号が含まれます。 |
prefferedLanguage | 文字列 | ユーザーが使用する言語。ISO 639-1 コードに従う必要があります(例:en-US)。 |
responsibilities | 文字列の配列 | ユーザーが自分の責任を列挙するためのリスト。 |
schools | 文字列の配列 | ユーザーが出席した学校を列挙するためのリスト。 |
skills | 文字列配列 | ユーザーが自分のスキルを列挙するためのリスト。 |
state | 文字列 | ユーザーの住所の都道府県。 |
streetAddress | 文字列 | ユーザーの勤務先の住所。 |
surname | 文字列 | ユーザーの姓(姓または名)。 |
usageLocation | 文字列 | 2 文字の国コード(ISO 標準 3166)。国におけるサービスの可用性を確認するための法的要件により、ライセンスが割り当てられるユーザーに必要です。 例として、US、JP、GB などが挙げられます。null 値は使用できません。 |
userPrincipalName | 文字列 | ユーザーのユーザープリンシパル名(UPN)。 UPN は、インターネット標準 RFC 822 に基づいた、ユーザーのインターネット スタイルのログイン名です。慣例により、これはユーザーのメール名にマッピングする必要があります。一般的な形式は alias@domain です。domain はテナントの検証済みドメインのコレクション内に存在している必要があります。 テナントの検証済みドメインには、組織の verifiedDomains プロパティからアクセスできます。 メモ:このプロパティにはアクセント文字を含めることはできません。使用できる文字は、A~Z、a~z、0~9、' . - _ ! # ^ ~ のみです。許可される文字の完全なリストについて詳しくは、ユーザー名ポリシーを参照してください。 |
userType | 文字列 | ディレクトリ内のユーザータイプを分類するために使用できる文字列値。 |
例 - 指定したユーザーのプロパティを更新する
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); //指定したユーザーのプロパティを更新します details = { businessPhones : [“+1 425 555 0109”], officeLocation : “SF”, streetAddress: “USA” } graphServiceClient.updateUser(“user-id”, details); </cfscript>
例 - ログインしているユーザーのプロパティを更新する
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); //ログインしているユーザーのプロパティを更新します details = { businessPhones : [“+1 425 555 0109”], officeLocation : “18/2111” } graphServiceClient.updateUser(details); <cfscript>
ユーザーの削除
このメソッドを使用すると、ユーザーを削除できます。この操作には高レベルの管理者権限が必要です。
権限
権限タイプ | 権限(最小権限から最大権限まで) |
委任済み(職場または学校のアカウント) | User.ReadWrite.All |
アプリケーション | User.ReadWrite.All |
パラメーター
すべてのパラメーターが必須です
パラメーター | 型 | 説明 |
userID | 文字列 | 削除するユーザーのユーザー ID。 |
例
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); graphServiceClient.deleteUser(userId); </cfscript>
ログインセッションの取り消し
revokeSignInSessions メソッドは、特定のユーザーのすべてのアクティブな認証トークン(更新トークン)を無効にします。このアクションは、ユーザーが既存のトークンを使用してリソースにアクセスする権限をすぐに取り消すことを目的としています。
通常、この操作は、ユーザーがデバイスを紛失または盗難された場合に(ユーザーまたは管理者によって)実行されます。この操作により、デバイスに関係なく、ユーザーが以前に同意したすべてのアプリケーションに再度ログインすることが要求され、デバイス上のアプリケーションを通じて組織のデータにアクセスされることが防止されます。
例
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); graphServiceClient.revokeSignInSessions(“user-id”); </cfscript>
パスワードの変更
ユーザーがパスワードを更新できるようにします。 すべてのユーザーは、管理者の役割を割り当てられていなくても、自分のパスワードを更新できます。
パラメーター | 型 | 説明 |
currentPassword | 文字列 | 現在のパスワード。 |
newPassword | 文字列 | 新しいパスワード。 |
例
<cfscript> passwordChange = { currentPassword: “ColdFusion$123”, newPassword : “ColdFusion$1234” } res = graphServiceClient.changePassword(passwordChange); </cfscript>
ユーザーのデルタの取得
デルタトークンは、特定の時点からの Entra ID の変更を追跡するために使用されます。これは、前回の取得以降に発生した変更を特定するのに役立ちます。トークンを使用すると、アプリケーションは、リクエストごとにターゲットリソースの完全な読み取りを実行しなくても、新しく作成、更新、または削除されたエンティティを検出できます。これにより、デルタトークンを使用して、必要な変更を追跡できます。
例
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); users = graphServiceClient.getUsersDelta(); while(structKeyExists(users, “skiptoken”)){ users = graphServiceClient.getUsersDelta({ skiptoken: users.skiptoken });} deltaToken = users.deltatoken; </cfscript>
- skipToken:skipToken を使用すると、ユーザーコレクション内の特定の結果セットをスキップして、後続の応答が適切なポイントから開始されるようにすることができます。同じユーザーコレクション内でさらに追跡する変更がある場合は、デルタトークンではなくスキップトークンを取得します。
- deltaToken:deltaToken は、デルタクエリへの応答として返される一意の識別子です。最後のリクエスト以降に特定のデータセットに行われた変更のみを取得できるので、データ セット全体を再取得せずに増分更新を追跡できます。
プロファイル写真の取得
ユーザーのプロファイル写真を ColdFusion イメージオブジェクトとして取得し、そのメタデータも取得します。詳しくは、Microsoft の ProfilePhoto を取得するドキュメントを参照してください。
例
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); //指定したユーザー ID のプロファイル写真を取得します myImage=graphServiceClient.getProfilePhoto(“user-id”); </cfscript>
プロファイル写真の更新
新しい画像をアップロードして、ユーザーのプロファイル写真を更新します。詳しくは、Microsoft の ProfilePhoto を更新するドキュメントを参照してください。
例
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); //指定したユーザー ID のプロファイル写真を更新します srcPath = expandPath(“./” & “myProfile.jpg”); myImage = ImageNew(“#srcPath#”); graphServiceClient.updateProfilePhoto(“user-id”,myImage); </cfscript>
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#accessToken#”}); //指定したユーザー ID のプロファイル写真を削除します graphServiceClient.deleteProfilePhoto(“user-id”); </cfscript>
応答のフィルタリング
Microsoft Graph API のフィルターは、クエリによって返される応答を絞り込むために使用されます。返されるデータが満たす必要のある条件を指定できるので、大規模なデータセット内の特定の情報を見つけやすくなります。結果では、skipToken を使用すると、現在の呼び出しで返された結果のセットをスキップして、後続の応答が適切なポイントから開始されるようにすることができます。
Microsoft Graph では、応答で返されるデータの量を指定および制御するために使用できるオプションのクエリパラメーターをサポートしています。正確なクエリパラメーターのサポートは、API 操作ごとに異なります。すべてのクエリパラメーターは、呼び出しのアクション API(get、create、update など)への追加引数として構造体で受け入れられます。
名前 | 型 | 説明 |
filter | 文字列 | フィルタークエリパラメーターを使用して、コレクションのサブセットのみを取得します。 |
orderby | 文字列の配列 | orderby クエリパラメーターを使用して、Microsoft Graph から返される項目の並べ替え順序を指定します。 |
search | 文字列 | 検索クエリパラメーターを使用して、検索条件に一致するリクエストの結果を制限します。 |
select | 文字列の配列 | select クエリパラメーターを使用して、個々のリソースまたはリソースのコレクションの既定のセットとは異なるプロパティのセットを返します。 |
top | number | top クエリパラメーターを使用して、結果に含める項目の数を指定します。 |
Microsoft Graph API 内のユーザー管理操作のフィルターは、ユーザーデータを効率的に管理および取得するために不可欠です。返されるデータが満たす必要のある条件を指定できるので、大規模なデータセット内の特定の情報を見つけやすくなります。
ColdFusion および MS Graph API を使用してフィルターを使用する方法は、次のとおりです。
orderby
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ orderby: [“displayName desc”]}); writeDump(var=#res#); </cfscript>
select
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ select: [“displayName”, “mail”]}); writeDump(var=#res#); </cfscript>
上位 n 人のユーザー
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({top = 2}) writeDump(res); </cfscript>
等価演算子
等しくない - ne
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “companyName ne (Company)”, select: [“givenName”,“companyName”] }); writeDump(res); </cfscript>
等しい - eq
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “companyName eq ('Adobe')” }); writeDump(var=#res.value#, format=“text”); </cfscript>
異なる - not
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “not(startswith(mail, 'A'))”, select: [“givenName”,“mail”] }); writeDump(var=#res.value#, format=“text”); </cfscript>
含む - in
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “companyName in ('Adobe')” }); writeDump(var=#res.value#, format=“text”); </cfscript>
より小さいか等しい - le
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “createdDateTime le 2025-01-11T00:00:00Z” }) writeDump(var=#res#, format=“text”); </cfscript>
より大きいか等しい - ge
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “createdDateTime ge 2024-12-11T00:00:00Z” }) writeDump(var=#res#, format=“text”); </cfscript>
ラムダ演算子
任意(any)
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “businessPhones/any(p:startswith(p, '765'))” }); writeDump(var=#res.value#, format=“text”); </cfscript>
条件演算子
および(and)
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “companyName ne null and NOT(companyName eq 'Microsoft')” }) writeDump(res); </cfscript>
関数
次で始まる - startswith
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “startswith(mail,'alex')” }) writeDump(res); </cfscript>
次で終わる - endswith
<cfscript> graphServiceClient = getMSGraphServiceClient({access_token = “#request.accessToken#”}); res = graphServiceClient.listUsers({ filter: “endswith(mail,'@hotmail.com')” }) writeDump(res); res = graphServiceClient.listUsers({ filter: “endswith(userPrincipalName,'onmicrosoft.com')” }) writeDump(res); </cfscript>