問題タブ [principal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - WebstartでのKerberosの使用。チケットキャッシュからtgtを取得できません
WebstartでKerberosを使用するのに問題があります。現在署名されているWindowsユーザーのプリンシパルを取得したいのですが、APIはチケットキャッシュからtgtを取得しようとします。
AllowTgtSessionKeyはレジストリで1に設定されています。
通常のJavaアプリケーションでは、すべて問題なく、チケットを取得してプリンシパルを使用できます。
しかし、アプリケーションをWebstartとしてデプロイすると、LoginContext#loginを呼び出すと、キャッシュからチケットを取得できず、LoginExceptionが発生します。
これが私のコードです:
構成:
そして、これが私のコードです:
私は何が間違っているのですか?すべての瓶は署名されています!
あなたの助けのためのThx。
よろしく、ホルガー
c# - DirectoryServices.AccountManagement を使用して文字列から名前で UserPrincipal 属性を照合/更新する
キー/値が UserPrincipal 属性であるディクショナリがあります。これらはcsvファイルから読み込まれています。この csv ファイルには、更新する対応する AD ユーザーの employeeId も含まれています。目標は、csv で提供された値で AD の各ユーザー属性を更新することです。
ただし、csv で提供される属性は実行時までわかりません。
特に DirectoryServices.AccountManagement を使用してから Update / Save を使用して、提供された各属性名を正しい UserPrincipal 属性と照合するにはどうすればよいですか?
Reflection と 2.0 の DirectoryEntry を使用してそこに到達する方法がありますが、それでも更新して保存する方法が必要です。
(「userToUpdate」には UserPrincipal インスタンスへの参照があり、「属性」は csv から提供されたキー/値です)
spring-security - spring-security: プリンシパルはどこに行ったのですか?
私はしばらく春のセキュリティで遊んでいますが、何らかの理由で、認証と承認が正しく機能している場合でも、JSP のプリンシパルにアクセスできません。
これは私の index.jsp です:
これは *-security-xml です。
forAuthenticated.jsp にアクセスしようとすると、ログインを求められます。test/test に入った後、forAuthenticated ページにアクセスしますが、admin/adminUsers.jsp にはアクセスしません。これは問題ありませんが、問題は index.jsp のプリンシパルにアクセスできないことです。これは、test/test としてログインしたときに index.jsp が出力するものです。not logged in
norlogged in
トレースが表示されないことに注意してください。
私は何が欠けていますか?何をダブルチェックする必要がありますか?
c# - ユーザー アカウントを追加/削除/管理するためにリモート マシンにアクセスする方法は?
Windows ユーザー アカウントをプログラムで追加および削除するために、リモート マシンにアクセスする必要があるシナリオがあります。リモート マシンは、メイン ワークステーションを交換する必要がある場合に備えて、リモートで構成する必要がある「予備のワークステーション」です。したがって、ここにはセキュリティ バイパスや悪意のあるソフトウェアはありません :)
リモート マシン管理者のユーザーとパスワードを知っており、WMI Win32_UserAccount を使用して、既存のユーザー アカウントの完全なリストを取得できます。現在、各ユーザーの UserPrincipal オブジェクトを取得しようとしています (最終的に削除するため) が、すべての試行で例外が発生しています。
試み #1:
この場合、最初の行で常に例外が発生します。
System.DirectoryServices.AccountManagement.PrincipalServerDownException がキャッチされました Message=サーバーに接続できませんでした。
Source=System.DirectoryServices.AccountManagement StackTrace: System.DirectoryServices.AccountManagement.PrincipalContext.ReadServerConfig(String serverName, ServerProperties& properties) 内 System.DirectoryServices.AccountManagement.PrincipalContext.DoServerVerifyAndPropRetrieval() 内 System.DirectoryServices.AccountManagement.PrincipalContext..ctor( ContextType contextType、文字列名、文字列コンテナー、ContextOptions オプション、文字列 userName、文字列パスワード) in System.DirectoryServices.AccountManagement.PrincipalContext..ctor (ContextType contextType、文字列名、文字列コンテナー、文字列 userName、文字列パスワード) InnerException: System.DirectoryServices .Protocols.LdapException Message=LDAP サーバーを利用できません。ソース = System.DirectoryServices.試み #2:
この場合、2 行目で常に例外が発生します。
System.IO.FileNotFoundException がキャッチされました。メッセージ = ネットワーク パスが見つかりません。
ソース = Active Directory StackTrace: System.DirectoryServices.Interop.UnsafeNativeMethods.IAds.GetInfo() 内 System.DirectoryServices.DirectoryEntry.RefreshCache() 内 System.DirectoryServices.AccountManagement.PrincipalContext.DoMachineInit() 内 System.DirectoryServices.AccountManagement.PrincipalContext System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx() の System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper の .Initialize()(PrincipalContext context, Type principalType, Nullable`1 identityType, String identityValue, DateTime refDate) in System.DirectoryServices.AccountManagement System.DirectoryServices の .Principal.FindByIdentityWithType(PrincipalContext context, Type principalType, String identityValue)。AccountManagement.UserPrincipal.FindByIdentity (PrincipalContext コンテキスト、文字列 identityValue) InnerException:
PrincipalContext オブジェクトのさまざまな署名を試しました (IP アドレスの代わりにドメイン名を使用する、ユーザー名とパスワードを使用するなど)。ただし、両方の試行で常に例外が発生します。
いくつかの指示がありませんか?PrincipalContext オブジェクトを作成する前に、偽装を使用してリモート マシンへの完全なアクセス権を取得する必要がありますか? 私がやろうとしていることを達成する他の方法はありますか? (つまり、リモート マシンにアクセスして Windows アカウントを追加/削除します)
tomcat - ユーザー プリンシパル 特定のロールに対しても承認されていない限り、認証されたユーザーは使用できません
Tomcat で Web アプリを実行しています。サーバーによって信頼された有効な証明書を持つすべてのユーザーに Web アプリへのアクセスを許可したいのですが、証明書からユーザーの DN を読み取りたいと考えています。clientAuth="true" ("want" も機能します) を使用して SSL コネクタを構成しました。web.xml には、クライアント証明書を提示する必要があるログイン制約があります。ユーザー証明書の署名に使用される CA 証明書を使用してトラストストアを構成しました。
クライアントは証明書を提示し、サーバーはそれを受け入れて、アプリへのアクセスを許可します。私の問題は、HttpServletRequest インスタンスで getUserPrincipal() を呼び出すと、null になることです。auth-constraint を web.xml に追加して、ユーザーが特定のロールに所属することを要求し、ユーザーが指定されたロールに所属するように構成されている場合、ユーザー プリンシパルは null ではありません。
HttpServletRequest の API によると、ユーザーが認証されていない場合、ユーザー プリンシパルは null になります。ユーザーは有効で信頼できる証明書を提示したため、認証されたと考えていますが、このコンテキストでの認証には承認が含まれているようです。
ユーザーを特定のロールに割り当てずに、有効な信頼できる証明書からユーザー プリンシパルにアクセスする方法はありますか?
プリンシパルが null になる web.xml スニペットを次に示します。
そして、指定されたロールに対してユーザーが構成されている場合にユーザープリンシパルを取得できるようにする web.xml スニペットを次に示します。
asp.net-mvc-4 - Stackoverflow のような Profie Principal を持つロール
でメンバーシップを実装する必要がありRole Profile
ます。
それはどういう意味ですか: Role Profile
? たとえば、私にはManager
役割がありますが、特別なドキュメントを読んだり、特定のデータを追加したりするなど、特別な権限を彼に与えたいとします。Agent
または、彼ができる役割を持つメンバーがいreadonly
ます。
membership & roles
プロバイダーを使用しています。
この種の実装方法を提案できますRole Profile or Principal over the Application
か?
java - Spring MVC RESTチャネルでログに記録されたユーザー名/プリンシパルを取得するには?
Spring MVC REST チャネルがあります。
そして私は私の方法を持っています:
今、ログインしているユーザーの名前が必要です。通常、メソッドでそれを行うことができます
しかし、ここでそれを取得する方法は?@RequestHeader
ヘッダー ( )、または Cookie ( ) の注釈もあり@CookieValue
ます。しかし、どうすればPrincipal
メソッドで を取得できますか?
java - Spring Security の権限は? SecurityContextHolder の認証権限とプリンシパルの権限
Spring Security を使用して、webapp に認証と承認を提供しています。
UserDetails loadUserByUsername(String username) throws UsernameNotFoundException;
でログインする標準的な方法を使用しますDaoAuthenticationProvider
。
ログインに成功すると、次の 2 つの方法でユーザーの権限にアクセスできます。
1#SecurityContextHolder.getContext().getAuthentication().getAuthorities()
2#((UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getAuthorities()
Authentication インスタンス権限リストは UserDetails の user.getAuthorities() から構築されるため、これらは同じであると想定されていますが、実際には 2 つの異なる Collection インスタンスです。プリンシパルのものは UnmodifiableSet で、Authentication インスタンスのものは UnmodifiableRandomAccessList です。同じ権限リストを含む 2 つの異なる Collection インスタンス。
これは、現在認証されているプリンシパルに権限を動的に追加するソリューションを見つけようとしているときに私を驚かせました。これは良いことではありません。セキュリティ レイヤーで許可されるべきではありませんが、それでも私が必要としているのはそれです。
私が受け入れられると思った解決策は、現在認証されているユーザーでプログラムからログインすることでした
new UsernamePasswordAuthenticationToken(authentication.getPrincipal(), authentication.getCredentials(), dbAuthsSet);
authentication
現在の認証インスタンスとdbAuthSet
現在の権限のリスト + 追加する必要があるものです。
そして、これはうまくいきます。今唯一奇妙なことは、
1#SecurityContextHolder.getContext().getAuthentication().getAuthorities()
2#((UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getAuthorities()
もう同じ権限のリストを返さないでください。
アプリケーションで認証のリストに対して権限をチェックする場合、私は問題なく、これは完全に正当化されることです。しかし、プリンシパルのリストを確認すると、矛盾に直面しています。
どう思いますか?Spring の Security 3.2 で対処すべき問題ですか?
new UsernamePasswordAuthenticationToken()
セッションで現在認証されているユーザーに追加の権限を与えるという私の目標を達成するために、プログラムでログインすることは妥当だと思いますか?
Spring のRun-As Authentication Replacement機能を使用するのは良いケースでしょうか? 誰でもこれに関する経験を共有できますか?
components - 主成分分析
最近、主成分分析に関するチュートリアルを読んでいます (主成分分析に関するチュートリアル/Lindsay I Smith)。最後に、「古いデータを取り戻す」について説明します。これを行う意味があるかどうか疑問に思っていますか?R の princomp 関数の下にある「USArrests」という名前のデータセットで実際にこれを試しました。古いデータセットに戻すと、元のデータセットとまったく同じ数の変数が得られます。さらに悪いことに、変換された変数は100% 相関します。この意味で、PCA は元の変数の数を減らすことができないため、変数間の相関を排除できません。
アドバイスありがとうございます!
java - スキャナーを使った複利
次のようなエラーが表示されます。
精度の低下
必須: フロート
見つかった : ダブル
1 エラー