Поделиться через


Рекомендации по авторизации для клиентов, размещенных в средах для государственных организаций Германии, Китая и США

Если клиент Office 365 размещается в определенной среде, например в средах для государственных организаций Германии, Китая или США, при разработке для клиента необходимо учитывать это.

Область применения: Office 365, размещенные в среде правительства Германии, Китая или США

Важно!

Использование Azure ACS (служб контроль доступа) для SharePoint Online прекращено с 27 ноября 2023 г. См. полное объявление о выходе из эксплуатации, чтобы узнать больше. Использование Azure ACS вне контекста SharePoint уже прекращено 7 ноября 2018 г. и сейчас заканчивается.

Прекращение использования означает, что эта функция не получит новых инвестиций, но она по-прежнему поддерживается. Окончание срока службы означает, что эта функция будет прекращена и больше не доступна для использования.

Введение

Корпорация Майкрософт имеет определенные Office 365 развертывания в Германии, Китае и для правительства США для выполнения конкретных правил для этих областей. Дополнительные сведения о контексте приведены ниже по ссылкам:

Если вы являетесь разработчиком, предназначенным для приложений для SharePoint Online, размещенных в этих средах, необходимо учитывать, что эти среды имеют собственные выделенные Azure AD конечные точки проверки подлинности, которые необходимо использовать разработчику. В следующих главах объясняется, как использовать эти выделенные конечные точки для типичных параметров настройки SharePoint Online.

Использование Azure AD для авторизации

конечные точки Azure AD

Когда приложению Azure AD необходимо авторизоваться, оно должно использовать правильную конечную точку. В приведенной ниже таблице описаны конечные точки, которые нужно использовать в зависимости от того, где было определено приложение Azure AD.

Среда Конечная точка
Производство https://login.windows.net
Германия https://login.microsoftonline.de
Китай https://login.chinacloudapi.cn
Государственные учреждения США https://login.microsoftonline.us

Использование PnP для авторизации с помощью Azure AD

PnP AuthenticationManager предоставляет простой способ получения объекта ClientContext SharePoint при использовании приложения Azure AD. Затронутые методы были расширены с помощью необязательного AzureEnvironment перечисления

/// <summary>
/// Enum to identify the supported Office 365 hosting environments
/// </summary>
public enum AzureEnvironment
{
    Production=0,
    PPE=1,
    China=2,
    Germany=3,
    USGovernment=4
}

Ниже показана авторизация только для приложений. Обратите внимание на последний параметр в методе GetAzureADAppOnlyAuthenticatedContext :

string siteUrl = "https://contoso.sharepoint.de/sites/test";
string aadAppId = "079d8797-cebc-4cda-a3e0-xxxx"; 
string pfxPassword = "my password";
ClientContext cc = new AuthenticationManager().GetAzureADAppOnlyAuthenticatedContext(siteUrl, 
			aadAppId, "contoso.onmicrosoft.de", @"C:\contoso.pfx", pfxPassword, AzureEnvironment.Germany);

Другой фрагмент кода показывает интерактивный вход пользователя с помощью GetAzureADNativeApplicationAuthenticatedContext метода :

string siteUrl = "https://contoso.sharepoint.de/sites/test";
string aadAppId = "ff76a9f4-430b-4ee4-8602-xxxx"; 
ClientContext cc = new AuthenticationManager().GetAzureADNativeApplicationAuthenticatedContext(siteUrl, 
			aadAppId, "https://contoso.com/test", environment: AzureEnvironment.Germany);

Использование Azure ACS для авторизации надстройки SharePoint

При создании надстроек SharePoint они обычно получают авторизацию с низким уровнем доверия, которая зависит от Azure ACS, как описано в разделе Создание надстроек SharePoint, использующих авторизацию с низким уровнем доверия.

Конечные точки Azure ACS

Среда Префикс конечной точки Конечная точка
Производство учетные записи accesscontrol.windows.net
Германия Входа microsoftonline.de
Китай учетные записи accesscontrol.chinacloudapi.cn
Государственные учреждения США учетные записи accesscontrol.windows.net

При использовании этой модели ИСПОЛЬЗУЕМЫй URL-адрес конечной точки ACS имеет следующий формат: https:// + префикс конечной точки + / + конечная точка. Таким образом, URL-адрес для рабочей среды будет иметь https://accounts.accesscontrol.windows.netзначение , а для Германии — https://login.microsoftonline.de.

Обновление tokenhelper.cs в приложениях

Если вы хотите выполнить авторизацию надстройки SharePoint с помощью Azure ACS, вы используете tokenhelper.cs (или tokenhelper.vb). Класс tokenhelper по умолчанию будет иметь жестко заданные ссылки на конечные точки Azure ACS и методы для получения конечной точки ACS, как показано ниже.

...

private static string GlobalEndPointPrefix = "accounts";
private static string AcsHostUrl = "accesscontrol.windows.net";

...

Обновления Tokenhelper.cs для Германии

Обновите статические переменные GlobalEndPointPrefix и AcsHostUrl до значений Azure ACS для Германии.

...

private static string GlobalEndPointPrefix = "login";
private static string AcsHostUrl = "microsoftonline.de";

...

Обновления Tokenhelper.cs для Китая

Обновите статические переменные GlobalEndPointPrefix и AcsHostUrl до значений Azure ACS для Китая:

...

private static string GlobalEndPointPrefix = "accounts";
private static string AcsHostUrl = "accesscontrol.chinacloudapi.cn";

...

Использование PnP для авторизации надстройки с помощью Azure ACS

PnP AuthenticationManager предоставляет простой способ получения объекта SharePoint ClientContext при использовании Azure ACS для авторизации. Затронутые методы были расширены с помощью необязательного AzureEnvironment перечисления

/// <summary>
/// Enum to identify the supported Office 365 hosting environments
/// </summary>
public enum AzureEnvironment
{
    Production=0,
    PPE=1,
    China=2,
    Germany=3,
    USGovernment=4
}

Ниже показана авторизация только для приложений. Обратите внимание на последний параметр в методе GetAppOnlyAuthenticatedContext :

string siteUrl = "https://contoso.sharepoint.de/sites/test";
string acsAppId = "955c10f2-7072-47f8-8bc1-xxxxx"; 
string acsAppSecret = "jgTolmGXU9DW8hUKgletoxxxxx"; 
ClientContext cc = new AuthenticationManager().GetAppOnlyAuthenticatedContext(siteUrl, acsAppId, 
				acsAppSecret, AzureEnvironment.Germany);

См. также