标签: authorization

使用 Janrain 和 OAuth 的区别?

我目前使用 Janrain 并且不太了解 OAuth。

有人可以解释这两者之间的区别吗?

openid authentication authorization oauth janrain

2
推荐指数
1
解决办法
2970
查看次数

如何保护重置密码功能?

我想实现重置密码功能,以防用户丢失密码。但我担心有人能够对不属于他的单个或多个电子邮件地址提出大量此类请求,这对这些地址的实际所有者来说会很烦人,我最终会被列入黑名单。

我能做些什么来保护这个功能?设置每个 ip 发送的有效电子邮件的限制?(我猜最多 3 封电子邮件就可以了)

security authentication user-interface authorization

2
推荐指数
1
解决办法
3404
查看次数

FB.getLoginStatus() 回调在用户注销 Facebook 时未调用

如果用户登录到 facebook,FB.getLoginStatus() 工作正常。但是,如果用户未登录 facebook,则不会调用 FB.getLoginStatus() 回调,并且我无法在我的代码中处理这种情况,因为我没有收到回调。我不是在沙盒模式。

我还添加了 'true' 来强制回调 eg) FB.getLoginStatus(function(response){}, true)。它没有帮助。这是一个错误吗?已经修好了吗?

如果没有,请在用户退出 Facebook 时解决。我现在在这个问题上坚持了一个星期。

function GetFBLoginStatus() {
    FB.getLoginStatus(function(response) {
        alert("inside call back function"); 
        if (response.status === 'connected') {
            var uid = response.authResponse.userID;
            var accessToken = response.authResponse.accessToken; 
            alert("Connected FBID = " + uid);
        } else if (response.status === 'not_authorized') { 
            alert("not_authorized"); 
        } else {
            alert("Not Logged into facebook");
        }
        return true;
    }, true)
} 
Run Code Online (Sandbox Code Playgroud)

authorization facebook facebook-javascript-sdk facebook-login

2
推荐指数
1
解决办法
1万
查看次数

如何登录活动目录?

我有活动目录的用户名和密码,我想使用 C# 登录活动目录。我如何在 Windows 窗体中执行此操作?

c# authorization .net-4.0 active-directory windows-server

2
推荐指数
2
解决办法
2万
查看次数

允许基于日期访问的权限设计模式

我正在寻找在我的应用程序中实现授权(非身份验证)方案的方法。

系统中目前有两个角色:A 和 B,但可能还有更多。用户只有一个角色。

基本上,我现在设置的是两个数据库表。一种是针对模型的基于角色的权限,另一种是针对特定用户的权限。我认为这样,用户可以根据他们基于角色的权限拥有一组默认权限,但他们也可以授予/撤销特定的权限。

例如:

table: user_permissions
columns:
    user_id: [int]
    action: [string]
    allowed: [boolean]
    model_id: [int]
    model_type: [string]

table: role_permissions
columns:
    role: [int]
    action: [string]
    model_type: [string]        
Run Code Online (Sandbox Code Playgroud)

user_permissions表中,该allowed字段指定是否允许该操作,因此如果该值为 0,则可以撤消权限。

在另一个表中,我有每个动作的定义:

table: model_actions
columns:
    action: [string]
    bitvalue: [int]
    model_type: [string]
Run Code Online (Sandbox Code Playgroud)

我这样做是为了当我检查模型的权限时,例如 ['create', 'delete'],我可以使用按位和操作来比较用户的权限和我正在检查的权限。例如,模型 X 可能具有以下 model_actions:

action: 'create'
bitvalue: 4
model_type: X

action: 'delete'
bitvalue: 2
model_type: X

action: 'view'
bitvalue: 1
model_type: X
Run Code Online (Sandbox Code Playgroud)

如果我的用户/角色权限指定模型 X 的创建、查看和删除操作分别为 1、0 和 1,则根据model_actions表将其表示为 110 。当我检查是否可以创建模型X时,我使用create为4的事实来构造位数组100。如果110和100的按位AND运算为100,则该权限有效。

无论如何,我想我已经找到了一个细粒度的权限设计模式。如果不是,请随时就该主题对我进行教育。

我的问题的实际重点涉及以下方面: …

permissions authorization role-base-authorization

2
推荐指数
1
解决办法
1729
查看次数

带有授权标头的清漆缓存内容的最佳实践

我已经在我的应用程序中实现了一个类似 facebook 的消息系统,现在我尝试使用 varnish 来提高性能。(即缓存用户消息对话)。必须保护用户对话,以便只有经过身份验证的用户才能查看它。

我使用 oauth2 来授权/验证用户,所以检索用户消息的请求是这样的。

curl -X GET user/{id}/message/thread/{thread} -H 'Authorization: Bearer XXX'
Run Code Online (Sandbox Code Playgroud)

据我了解清漆缓存,如果请求具有授权或 Cookie 标头,则清漆的默认设置不会缓存内容,我可以在清漆设置中对标头信息进行条带化,但是如果这样做,我将失去后端的控制权以识别如果用户是经过身份验证的用户。

所以我的问题是:在这种情况下使用清漆缓存的最佳做法是什么?

目前,我有一个解决方法,而不是在标头中发送授权,我将其附加为查询字符串,因此它将类似于

curl -X GET user/{id}/message/thread/{thread}?access_token=XXX
Run Code Online (Sandbox Code Playgroud)

它有效,但我觉得这不是一种正确的方法,有什么想法吗?

谢谢!

caching authorization web-services varnish

2
推荐指数
1
解决办法
2997
查看次数

Android USB 调试未显示授权对话框

我需要有关 USB 调试的帮助...

多年来,我一直试图让我的计算机调试我的手机。这令人沮丧。我已经安装了所有必需的驱动程序。我的设备已被检测到,adb devices但未经授权。无论我尝试多少次,我的 android 上的授权对话框都没有出现。

如果你想告诉我去对根文件做些什么,我不能。我的手机还是原装的,没有root。是的,我已更改为 PTP。我还从 SDK Manager 安装了最新的 sdk 平台工具。我使用 Windows,并在 cmd 中使用 adb。

请帮忙!

debugging usb android authorization adb

2
推荐指数
1
解决办法
2万
查看次数

Angular 2 - HTTP基本身份验证请求无法输入详细信息

我一直在尝试多种方法来访问使用基本身份验证的API.问题是Angular 2无法输入用户名和密码.

如果您导航到基本的auth网站,它会要求您输入用户名和密码,然后在大多数浏览器上单击Log InCancel.如果你点击这个网站上的取消,它将返回一个字符串说明User pressed Cancel,而这正是我通过Angular的HTTP请求做到的.

在这个阶段,Authorization标头中的编码用户名和密码是否正确无关紧要,我只需要能够发送用户名和密码并让它尝试登录.

有什么建议?

request() {
        let headers = new Headers();
        headers.append('Authorization', "Basic dWRpZDM6cGFzc3dvcmQ=");

        this.http.get('http://localhost:8888/api/', {
            headers: headers
        })
            .subscribe(
                data => this.example = data.text(),
                err => this.logError(err.text()),
                () => console.log('Request Complete')
            );
        console.log(this.example);
    }
Run Code Online (Sandbox Code Playgroud)

javascript authentication authorization http angular

2
推荐指数
1
解决办法
8928
查看次数

每当宣布停止请求时,HasAnyAuthority 总是让我进入 api

通过 Spring Security 我创建了一个方法:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private UserDetailsService userDetailsService;

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http
            .csrf().disable()
            .authorizeRequests()
                .antMatchers("/static/build/app.js", "/static/app/styles/*/**", "/static/app/js/*/**",
                        "/static/build/libs.js", "/index.html", "/static/build/*/**", "/", "/static/**").permitAll()
                .antMatchers("/auth/**").permitAll()
                .antMatchers("/api/user/registerClient").permitAll()
                .antMatchers("/api/user/checklogin/**").permitAll()
                .antMatchers("/api/user/getAllAdmins").permitAll()
                .antMatchers("/api/**").hasAnyAuthority(AuthoritiesConstants.CLIENT, AuthoritiesConstants.ADMIN, AuthoritiesConstants.WORKER)
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/")
                .loginProcessingUrl("/")
                .permitAll();
Run Code Online (Sandbox Code Playgroud)

和控制器方法的例子:

@RequestMapping(value = "/api/vehicle")
@PreAuthorize("hasAnyAuthority('ADMIN', 'CLIENT')")
@RequestMapping(value = "", method = RequestMethod.GET)
public List<VehicleReservationModel> getVehiclesForClientByLogin(HttpServletRequest request) {
    Principal name = request.getUserPrincipal();
    if (name.getName() == null) {
        throw new RuntimeException("Brak …
Run Code Online (Sandbox Code Playgroud)

authentication authorization spring-security

2
推荐指数
1
解决办法
8039
查看次数

在哪里可以在PDP上针对属性提供者再次检查XACML请求的属性?

我正在评估PDP引擎,此刻我尝试AuthzForce Core。到目前为止,PDP评估请求的过程非常可靠:

//My request and pdp configuration files
File confLocation = new File("D:/docs/XACML/AuthZForce/IIA001/pdp.xml");//pdp.xml tells the pdp where the policies xml files are
File requestFile = new File("D:/docs/XACML/AuthZForce/IIA001/Request.xml");

//I instantiate the pdp engine and the xacml parser
final PdpEngineConfiguration pdpEngineConf = PdpEngineConfiguration.getInstance(confLocation, null, null);
PdpEngineInoutAdapter<Request, Response> pdp = PdpEngineAdapters.newXacmlJaxbInoutAdapter(pdpEngineConf);
XmlUtils.XmlnsFilteringParser xacmlParserFactory = XacmlJaxbParsingUtils.getXacmlParserFactory(false).getInstance();

//I parse the request file
Object request = xacmlParserFactory.parse(requestFile.toURI().toURL());
if (request instanceof Request) {
    //At this point I could access all request attributes or alter them …
Run Code Online (Sandbox Code Playgroud)

authorization xacml pdp abac authzforce

2
推荐指数
1
解决办法
179
查看次数