> Office 365 (SSO) 2FA
Office 365 (SSO) 2FA
Решение двухфакторной аутентификации Protectimus поддерживает систему единого входа (SSO) инициированную поставщиком услуг — SP (Service Provider).
Это означает, что конечные пользователи будут входить в свои учетные записи непосредственно со страницы логина защищаемого ресурса. Когда конечный пользователь пытается войти в защищенный ресурс, запрос авторизации отправляется поставщику удостоверений Identity Provider (Protectimus). Как только Protectimus аутентифицирует личность пользователя, пользователь входит в свою учетную запись на защищенном ресурсе.
Схема взаимодействия On-Premise платформы Protectimus с Microsoft Office 365 через Keycloak представлена ниже.
1. Установите платформу Protectimus и задайте базовые настройки
- Установите Локальную платформу Protectimus.
- Создайте ресурс.
- Добавьте пользователей.
- Добавьте токены или активируйте Портал самообслуживания пользователей.
- Назначите токены пользователям.
- Назначте токены с пользователями на ресурс.
2. Синхронизируйте On-Premise AD с Azure AD
2.1. Откройте office.com
Admin -> Show all -> Azure Active Directory -> Custom domain names -> “Add custom domain”В DNS создайте TXT запись, чтобы подтвердить добавление домена в Azure AD.
2.2. Скачайте и запустите Azure AD Connect
https://www.microsoft.com/en-us/download/details.aspx?id=47594Continue -> Customize -> Install (No checked options) -> Password Hash Synchronization -> Next -> Connect to Azure AD:
username@[something].onmicrosoft.com pass:
Next -> Add Directory -> domain
Вы можете создать отдельный Organizational Unit (OU) для пользователей, учетные записи которых должны быть защищены двухфакторной аутентификацией, и настроить синхронизацию только для этого OU. У каждого пользователя в этом OU должен быть прописан адрес электронной почты, он будет использоваться в качестве имени пользователя UPN (User Principal Name).
- Create new AD account
- Enterprise ADMIN username: domain\Administrator
- PASSWORD: пароль администратора Windows AD
Next -> Next -> Sync Selected Domain
Next -> Next -> Next -> Exit.
3. Настройте Keycloak
3.1. Создайте Realm
Создайте Realm в Keycloack (Add Realm), например, с именем Office365.3.2. Создайте User Federation
Создайте Mapper:- Name: saml.persistent.name.id.for.urn:federation:MicrosoftOnline
- Mapper Type: user-attribute-ldap-mapper
- User Model Attribute: saml.persistent.name.id.for.urn:federation:MicrosoftOnline
- LDAP Attribute: objectGUID
- Read Only: ON
- Always Read Value from LDAP: ON
- Is Mandatory in LDAP: OFF
- Is Binary Attribute: OFF
3.3. Создайте Клиента
- Для этого при создании необходимо импортировать этот файл:
https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml - Отредактируйте свойства клиента:
- Client Signature Required – Disable
- Signature Algorithm – “RSA_SHA1”
- Создайте Mapper для клиента “Add builtin” -> X500 email
- Mapper: Name: IDPEmail
- Mapper Type: User Property
- Property: email
- SAML Attribute Name: IDPEmail
ВНИМАНИЕ! Важно чтобы имя файла было: «urn:federation:MicrosoftOnline»
4. Привяжите Office 365 к Keycloak
4.1. Получите сертификат SAML
Прежде всего, нужно получить сертификат SAML и проверить его, используя этот URL:https://kc.dev.protectimus.com/auth/realms/[realm name]/protocol/saml/descriptor
Или проверьте сертификат с помощью соответствующей функции в интерфейсе — SAML key.
4.2. Установите необходимое ПО
- Install-Module -Name AzureAD
- Install-Module MSOnline
4.3. Привяжите Office 365 к Keycloak
Выполните следующий скрипт:# get the public key certificate from keycloak
# https://kc.dev.protectimus.com/auth/realms/2608/protocol/saml/descriptor
# see X509Certificate
$cert="MIICoTCCAYkCBgF3Y+nVLjANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAlvZmZpY2UzNjUwHhcNMjEwMjAyMTgwMTQ0WhcNMzEwMjAyMTgwMzI0WjAUMRIwEAYDVQQDDAlvZmZpY2UzNjUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3eE+GuP2ubqH0C2sceb1iBsPr5LNIK0dtW67CQPL2tLM0YlRAFXu2sWRMKwPl8ZULvMzufA855j0Chd5KX1izVi8c6fclqge+OB9iMB05Ew/zGb8zmCXETgVU9+lsQFchd8M/I/i0QKKOatIbP50t9SKJI5daX78wb/IVk2pexB76cqXaQrrddh9ksXo3OFyFpAk1xlCC9Nu77QLCPWK4fBnSEbnzxDP3ZMhPXMQsn3MbD1SHGmHmJ93wMeXFGGIU77aDI/uAYZj1tb7dj/aICqG8RpUVXEolf8BDH/nT2TonYSmMaSqd99wCNJaKJWpyPd2qid7118DtOyPzZza/AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAFglY4CdTJkGTL7/YUY1uBhSTSGvtbv6GiQ+2Uox3JVNVECB1Za63mUU1tTC/r4Jp02jRnTtBfSR7Sra+HDIKgAOkwcVTh2P++i1bk7PiY1Rb2ePrBtXWnb0GC8qCLAOK7b2/y9E1K5Wjg2Qg1dxnNZFys8CLpHkkYwMwChJA6E8DMg/bWUYfighBo4mAUpORAwqkmEB2mC39VbWZAUyBysQ5Cb9xK8RWnOgj7XhZfhpihK815z+uwirQjOFmGhWs2Mxk9PHkPkCFeWdcGGoRPvBuVYaG5/MrWu5hqQFtiu4ZDsySEnBdUqfudD6Iorc6QHVYf6VCunSIdE9L9sIovs="
$uri="https://kc.dev.protectimus.com/auth/realms/Office365/protocol/saml"
$issuer_uri="https://kc.dev.protectimus.com/auth/realms/Office365"
$dom="yourdomain.com"
$cred = Get-Credential
Connect-MsolService -Credential $cred
Set-MsolDomainAuthentication -DomainName $dom -Authentication Federated -ActiveLogOnUri $uri -SigningCertificate $cert -PassiveLogOnUri $uri -IssuerUri $issuer_uri -LogOffUri $uri -PreferredAuthenticationProtocol SAMLP
Проверить привязку можно следующим образом:
Get-MsolDomainFederationSettings -DomainName domain.name
4.4. Отвязка Office 365 от Keycloak
Выполните следующий скрипт:$dom="yourdomain.com"
Set-MsolDomainAuthentication -DomainName $dom -Authentication managed
Все готово, откройте office365.com и попробуйте войти в систему под учетной записью из AD.
Last updated on 2022-09-15