IDE Credential Management for Secure Cloud Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development tools often store authentication credentials in source code or configuration files, which are insecure and pose a risk of compromise, especially when used in development and production environments.

Innovation Solution

Implementing a system where a development tool, such as an integrated development environment (IDE), authenticates a developer's identity and retrieves a resource access credential from an external source, storing it separately and using it for secure access to cloud-hosted resources without embedding credentials in the software program.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If authentication credentials are stored in source code or configuration files, then the program can access secured resources, but security is compromised due to potential exposure in insecure locations

Engineering Contradiction:
ImprovesecurityVSAvoidcredential access
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent extracts authentication credentials from source code and configuration files by introducing a separate credential management system. The IDE stores credentials in its own secure storage (keychain), and the program retrieves them through an authentication library that communicates with the IDE, rather than embedding credentials directly in the program files.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary authentication library that acts as a mediator between the program and the secured resources. This library communicates with the IDE to obtain credentials and then uses them to access resources, eliminating the need for the program to directly store or manage credentials in its source code.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If different executables are used for development and production environments, then proper authentication can be provided in each environment, but program complexity increases

Engineering Contradiction:
Improveauthentication provisioningVSAvoidprogram executable variants
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent makes the single program executable universal by enabling it to operate in both development and production environments through the same binary. The program uses an authentication library that automatically detects the environment and retrieves appropriate credentials from the IDE in development mode or from embedded credentials in production mode, eliminating the need for separate executables.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces dynamic behavior into the program by making credential retrieval adaptive to the runtime environment. The authentication library dynamically determines whether to query the IDE for credentials (development environment) or use embedded credentials (production environment), allowing a single executable to function correctly across different contexts without requiring separate binaries.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11281763B2Integrated development environment information sharing for authentication provisioning
Publication Date: 2022.03.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11281763B2 patent drawing
  • US11281763B2 patent drawing
  • US11281763B2 patent drawing

AI summary

Resource access credential security is improved by providing authentication tools and techniques which do not rely on embedment of credentials in the source code or configuration files of programs that use the credentials to access secured resources. A program under development in a development tool determines through the operation of authentication code that it is under development and that a developer identity is to be used to obtain access credentials, instead of using an identity of the program itself as occurs when the program is not under development. The development tool may be stand-alone, or may be in an integrated development environment, and may be extensible or not. The program may be an application, a web service, or other software, and may be deployed to a cloud or other networked environment. Authentication may be based on a selected developer identity or selected account or other subscriber data.