偽装するアカウントを指定する
サービス アプリケーションが EWS を使用して偽装するユーザーを識別する方法について説明します。
サービス アプリケーションは、次の 3 つの識別子のいずれかを使用して偽装するユーザー アカウントを識別します。
プライマリ SMTP アドレス。
ユーザー プリンシパル名 (UPN)。
セキュリティ識別子 (SID)。
もちろん、使用する識別子は、アプリケーションが使用可能な情報によって異なります。
偽装するユーザー アカウントを識別する
アプリケーションは、EWS マネージ API または EWS SOAP 要求を使用して、偽装するユーザー アカウントを識別できます。 EWS マネージ API は、ExchangeService.ImpersonatedUserId プロパティを使用して、偽装されたユーザーを識別します。 次の XML フラグメントに示すように、EWS は ExchangeImpersonation 要素を使用します。
<soap:Header>
<t:ExchangeImpersonation>
<t:ConnectingSID>
Identifier
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
次の各セクションは、識別子のいずれかを使用する方法を示します。 偽装識別子の動作を示す例については、「Exchange の偽装を使用して予定を追加する」を参照してください。
SMTP 電子メール アドレスを使用してユーザー アカウントを識別する
SMTP 電子メール アドレスは、ユーザー アカウントに関連付けられているプライマリ電子メール アドレスです。
EWS マネージ API アプリケーションで、SMTP 電子メール アドレスを ConnectingIdType.SMTP 列挙値と共に指定します。
exchangeServiceInstance.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SMTP, "alisa@contoso.com");
EWS SOAP 要求で、PrimarySmtpAddress 要素にはユーザー アカウントの電子メール アドレスが含まれています。
<soap:Header>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrimarySmtpAddress>alisa@contoso.com</t:PrimarySmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
UPN を使用してユーザー アカウントを識別する
UPN には、ユーザー アカウントの場所を示す完全修飾ドメイン名 (FQDN) が含まれています。 これは必ずしもユーザーのメールボックス ドメインではありません。 ユーザー参照を成功させるには、Active Directory Domain Services (AD DS) のユーザー アカウントで UserPrincipalName 属性を正しく設定する必要があります。
EWS マネージ API アプリケーションでは、UPN と ConnectingIdType.PrincipalName 列挙値を指定します。
exchangeServiceInstance.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, "alias@billing.contoso.com");
EWS SOAP 要求で、PrincipalName 要素 (ConnectingSIDType complexType) (EWS) 要素にはユーザー アカウントの UPN が含まれています。
<soap:Header>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrincipalName>alisa@billing.contoso.com</t:PrincipalName>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
SID を使用してユーザー アカウントを識別する
SID は、セキュリティ記述子定義言語 (SDDL) フォームで偽装するアカウントの識別子です。
EWS マネージ API アプリケーションで、SID を ConnectingIdType.SID 列挙値と共に指定します。
exchangeServiceInstance.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SID, "S-1-5-21-1493619105-1843311271-3936346804-1118");
EWS SOAP 要求で、SID 要素には、ユーザー アカウントの SID が含まれています。
<soap:Header>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:SID>S-1-5-21-1493619105-1843311271-3936346804-1118</t:SID>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>