我的 web 项目被开发为两个应用程序:i) Node.js 中的后端应用程序 ii) Angular.js 中的前端应用程序
是否有可能在项目中实现单点登录,或者需要将后端和前端结合为单个应用程序。
据我所知,如果有两个单独的应用程序,那么它们有单独的用户会话和状态。所以在我的场景中,前端登录可能不会使用单点登录与后端链接。
一旦我成功登录到身份验证服务器,服务器就会重定向回带有授权代码的应用程序。然后这个授权码用于在后端获取访问令牌。我怀疑是否有人在我使用之前看到/捕获或复制了我的授权码。然后他也可以使用我的凭据登录。我想知道,我的想法正确吗?或者我在这个过程中缺少一些安全流程。
编辑:我最关心的情况是有人在我的浏览器历史记录中看到了授权代码,然后他从其他机器发送此代码以获取访问令牌。我们怎样才能防止它。
如果 WebView 返回状态代码 200,我想在移动应用程序中执行特定操作。JS fetch 不符合条件,因为 WebView 用于加载登录页面,例如 SSO 登录。我需要能够查看登录是否成功(它返回状态代码 200),并关闭 WebView 并在移动应用程序中执行其他身份验证步骤。
我们有自己的 Web 应用程序,它根据本地定义并在本地数据库中维护的用户名和相关角色执行访问控制
我需要将我们的应用程序与“Azure AD”集成以使用单点登录 (SSO),以便使用相同的用户名,我们也可以集成和访问其他 SaaS 应用程序。我想我可以使用“Azure ADAL API”和“Graph API”来实现这一点。
但是,我想了解如何为“Azure AD”定义自定义用户属性和角色,以便在身份验证时与我们的应用程序共享属性和角色。这是我们的 Web 应用程序提供访问控制(基于用户 ID 和角色)而不在本地定义角色所必需的。我不确定如何实现这一目标?
请让我知道它是否可行以及实现相同目标的最佳选择是什么。
active-directory rbac saml single-sign-on azure-active-directory
我正进入(状态
Caused by: org.opensaml.common.SAMLException: Unsupported request
at org.springframework.security.saml.processor.SAMLProcessorImpl.getBinding(SAMLProcessorImpl.java:265) ~[spring-security-saml2-core-1.0.3.RELEASE.jar:1.0.3.RELEASE]
at org.springframework.security.saml.processor.SAMLProcessorImpl.retrieveMessage(SAMLProcessorImpl.java:172) ~[spring-security-saml2-core-1.0.3.RELEASE.jar:1.0.3.RELEASE]
at org.springframework.security.saml.SAMLProcessingFilter.attemptAuthentication(SAMLProcessingFilter.java:80) ~[spring-security-saml2-core-1.0.3.RELEASE.jar:1.0.3.RELEASE]
... 62 more exception
Run Code Online (Sandbox Code Playgroud)
在测试 SP 和客户端 IdP 之间的 SSO 时。
根据org.springframework.security.saml.processor.SAMLProcessorImpl#getBinding(org.opensaml.ws.transport.InTransport)方法源代码,当找不到合适的消息解码器时会抛出此异常。
在我的安全上下文中,我定义了下一个绑定:
<!-- Class loading incoming SAML messages from httpRequest stream -->
<bean id="processor" class="org.springframework.security.saml.processor.SAMLProcessorImpl">
<constructor-arg>
<list>
<ref bean="redirectBinding"/>
<ref bean="postBinding"/>
<ref bean="artifactBinding"/>
<ref bean="soapBinding"/>
<ref bean="paosBinding"/>
</list>
</constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)
谁能帮助我理解为什么会发生这种情况?
更新:
如果我使用http://idp.ssocircle.com作为 IdP,一切正常,只有当我尝试与不同的 IdP 链接时才会出现问题。
这是调试日志:
2019-03-04 16:46:42.315 DEBUG [211 default task-43][ExceptionTranslationFilter] Calling Authentication entry point.
2019-03-04 16:46:42.315 …Run Code Online (Sandbox Code Playgroud) 我正在验证我们的 Web 服务ASWebAuthenticationSession,出于某种原因,最终重定向后的唯一选项是Cancel。我之前有过这个工作,即使我确实按下了取消,回调 Url 也是通过完成处理程序发送的,我能够在那里解析令牌形式。但现在我得到了错误ASWebAuthenticationSessionErrorCodeCanceledLogin。
如何ASWebAuthenticationSession显示“完成”按钮并使用回调 Url 完成处理程序?上次 iOS 更新中有什么变化或中断吗?
if (@available(iOS 12.0, *)) {
self.session = [[ASWebAuthenticationSession alloc]
initWithURL:@"http://service.com"
callbackURLScheme:@"http://website.com"
completionHandler:_sessionHandler];
[self.session start];
}
Run Code Online (Sandbox Code Playgroud)
_sessionHandler = ^(NSURL * _Nullable callbackURL, NSError * _Nullable error) {
NSLog(@"Callback Url: %@, Error: %@", callbackURL, error);
if ( callbackURL != nil ) {
__block NSString * token = [weakSelf webToken:@"token" fromUrl:callbackURL];
weakSelf.completionHandler([weakSelf parseWebToken:token], error);
}
else
weakSelf.completionHandler(nil, error);
};
Run Code Online (Sandbox Code Playgroud)
回调 …
single-sign-on sfsafariviewcontroller sfauthenticationsession aswebauthenticationsession
我正在设置新的 cypress 测试来测试 Dynamics 365 应用程序中的一些功能。但是,我留下了一个带有 URL https://login.microsoftonline.com/__/和文本 Whoops的浏览器窗口,没有要运行的测试。
describe('Initial Cypress Tests', () => {
it('navigate to D365', () => {
cy.visit('https://wipropoc.crm8.dynamics.com')
})
})
Run Code Online (Sandbox Code Playgroud) Google 作为身份提供商的 Google SSO SAML 设置中的 ACS url 必须以 https 开头。因此,我无法使用本地主机 url。有没有办法在本地服务器上测试 Google SSO SAML?我需要输入什么网址(或其他详细信息)?
python single-sign-on saml-2.0 google-sso google-cloud-platform
我正在尝试在 Edge 上实施集成 Windows 身份验证,但它总是提示我输入凭据,而集成 Windows 身份验证适用于 IE、Chrome 和 Firefox。我尝试在安全选项中将该站点添加到本地 Intranet 站点并启用自动登录,但在边缘浏览器上没有运气。
Edge 是否支持集成 Windows 身份验证?
我尝试在安全选项中将该站点添加到本地 Intranet 站点并启用自动登录以及使用当前用户名和密码登录。
我的 android 应用程序允许用户将他们的社交帐户链接到他们的个人资料。要链接 gmail 和 youtube 帐户,我使用标准的 google oauth 方法。
public void signIn(){
doSignOut();
//Intent signInIntent = mGoogleSignInClient.getSignInIntent();
if(mGoogleApiClient.isConnected())
mGoogleApiClient.clearDefaultAccountAndReconnect();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
getActivity().startActivityForResult(signInIntent, RC_SIGN_IN);
}
protected void doSignOut() {
mGoogleSignInClient.signOut().addOnCompleteListener(getActivity(),
task -> {
Log.i(TAG, "doSignOut: Signed out Google account");
mGoogleSignInClient.revokeAccess().addOnCompleteListener(task1 -> {
Log.i(TAG, "doSignOut: revoke access successful: " + task1.isSuccessful());
});
});
}
Run Code Online (Sandbox Code Playgroud)
我正在注销连接的帐户以始终显示帐户选择器对话框并允许链接多个帐户
在此处选择一个帐户会显示 OAuth Concent 屏幕,并在允许时添加该帐户。如果账户是过去添加的,它甚至不显示内容屏幕,直接添加该账户。
最近开始出现问题。当我尝试添加一个新帐户(过去未链接)时,concent 屏幕显示为只有进度条的空白对话框。
我在日志中没有看到任何错误。我最近在我的应用程序中启用了 proguard。但是,即使禁用它也不能解决问题。
请帮我修复它。
single-sign-on ×10
oauth ×2
saml-2.0 ×2
access-token ×1
android ×1
angularjs ×1
azure ×1
cypress ×1
google-sso ×1
javascript ×1
node.js ×1
python ×1
rbac ×1
react-native ×1
saml ×1
spring ×1
spring-saml ×1
webview ×1