Как ограничить вход в систему указанным диапазоном IP-адресов с помощью пользовательской политики B2 C - PullRequest
2 голосов
/ 19 февраля 2020

Я использую пользовательскую политику B2 C для входа в систему. Можно ли ограничить пользователей, чтобы они могли входить только с указанного IP-адреса (или диапазона)?

Ответы [ 2 ]

2 голосов
/ 02 марта 2020

Также можно создать преобразование утверждений, которое проверяет, является ли IP-адрес клиента надежным или нет, следующим образом.

  1. Создайте один тип утверждений, например clientIP , типа строка , представляющая IP-адрес клиента:
<ClaimType Id="clientIP">
  <DisplayName>Client IP Address</DisplayName>
  <DataType>string</DataType>
</ClaimType>

и другой тип утверждения, например isTrustedIP , типа логический , представляющий является ли IP-адрес клиента доверенным или нет.

<ClaimType Id="isTrustedIP">
  <DisplayName>Is Trusted IP Address</DisplayName>
  <DataType>boolean</DataType>
</ClaimType>
Создание преобразования утверждений, такого как SetIsTrustedIPClaim , типа SetClaimsIfRegexMatch , которое проверяет, соответствует ли IP-адрес клиента доверенному IP-адресу (например, «216.3.128.12» или любое регулярное выражение для IP-адреса или диапазона ) или нет и, как результат, устанавливает для isTrustedIP утверждение true или false:
<ClaimsTransformation Id="SetIsTrustedIPClaim" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="clientIP" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="^216\.3\.128\.12$" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isTrustedIP" TransformationClaimType="regexCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
Создайте технический профиль для преобразования утверждений , чтобы преобразование утверждений можно было запускать с этапа оркестровки:
<ClaimsProvider>
  <DisplayName>Claims Transformation</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="ClaimsTransformation-SetIsTrustedIPClaim">
      <DisplayName>Set Is Trusted IP Claims Transformation</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="IncludeClaimResolvingInClaimsHandling">true</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="clientIP" DefaultValue="{Context:IPAddress}" AlwaysUseDefaultValue="true" />
      </OutputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="isTrustedIP" />
      </OutputClaims>
      <OutputClaimsTransformations>
        <OutputClaimsTransformation ReferenceId="SetIsTrustedIPClaim" />
      </OutputClaimsTransformations>
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>
Вызовите технический профиль преобразования утверждений из этапа оркестровки:
<OrchestrationStep Order="1" Type="ClaimsExchange">
  <ClaimsExchanges>
    <ClaimsExchange Id="ClaimsTransformation-SetIsTrustedIPClaim" TechnicalProfileReferenceId="ClaimsTransformation-SetIsTrustedIPClaim" />
  </ClaimsExchanges>
</OrchestrationStep>

Следующие этапы оркестровки могут разрешить или запретить доступ на основании того, установлено ли утверждение isTrustedIP . до true или false.

1 голос
/ 20 февраля 2020

В настоящее время такой функции нет в Azure AD B2 C. Вы можете оставить отзыв о Microsoft Azure Forum .

Вы можете попробовать реализовать это самостоятельно, просим обратиться к приведенной ниже идее.

Вы можете вызвать REST API и передать ему IP-адрес. IP-адрес может быть разрешен с помощью Resolver. Если это один IP-адрес, вы можете выполнить преобразование заявки в политике, чтобы проверить, совпадает ли IP-адрес пользователя. В противном случае, если ему нужно проверить ip пользователя в диапазоне ip, вам нужно сделать эту логи c в REST API.

Подобный подход к этому:

https://github.com/azure-ad-b2c/samples/tree/master/policies/relying-party-rbac https://docs.microsoft.com/en-us/azure/active-directory-b2c/claim-resolver-overview

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...